ASP MVC 将 Array 对象发送到 JavaScript 函数
ASP MVC send an Array object to a JavaScript function
我在大学课程中使用ASP MVC。但是,在我发送太多AJAX请求之前,我遇到了一个问题,这导致我的页面加载时间太长。因此,我认为我可以通过将数组从数据库发送到视图,然后将它们内联放入我的 jquery 函数来改善这种情况。
所以这是我有我的简单模型的样子:
public class NewBooking
{
public IEnumerable<dynamic> parks { get; set; }
}
然后在我的控制器中,我使用数据库中的信息设置公园,如下所示:
public ActionResult Index()
{
var model = new NewBooking();
var parks = Database.Open("SQLServerConnectionString").Query("SELECT * FROM Park");
var output = from o in parks
select new { parkID = o.parkID, parkName = o.parkName };
model.parks = output.ToList();
return View(model);
}
现在,这将返回我期望的所有信息,如果我简单地在视图中调用模型公园,您可以在下面看到:
@model build_01.Models.Timetabler.NewBooking
@{
@Model.parks
}
我知道这种方法不会,但是使用 for 循环它工作正常,现在到我的问题;我正在尝试调用一个 JavaScript 函数并将这个数组传递给它。
$(document.ready(function () {
slotAvailability(@Model.parks);
}));
我可以对此@Model.parks
做些什么来将其发送到函数吗?有点像如果我使用 AJAX 我会怎么做 JSON。
就目前而言,尝试像这样调用它会在我的控制台中给我这个错误:
Uncaught SyntaxError: Unexpected number
我可以看到为什么,如果我要检查元素,我可以看到函数解析如下所示:
slotAvailability(System.Collections.Generic.List`1[<>f__AnonymousType3`2[System.Object,System.Object]]);
谢谢
您应该使用 Json.Encode
函数。还要确保在document
后将括号关闭在正确的位置:
$(document).ready(function () {
var parks = @Html.Raw(Json.Encode(Model.parks));
slotAvailability(parks);
});
在这里使用dynamic
似乎是一个糟糕的设计。你没有任何智力感知。您宁愿有一个视图模型:
public class ParkViewModel
{
public int ParkId { get; set; }
public int ParkName { get; set; }
}
然后是您的NewBooking
模型:
public class NewBooking
{
public IEnumerable<ParkViewModel> Parks { get; set; }
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别