Javascript 剑道UI-名称';工作清单';在当前上下文中不存在
我收到一个错误,Javascript 剑道UI-名称';工作清单';在当前上下文中不存在,javascript,asp.net-mvc,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Asp.net Mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我收到一个错误,我试图填充剑道网格的当前上下文中不存在名称“作业列表”。我的视图JavaScript代码如下所示: var GridName = "#DetailsGrid2_" + MS_MasId; var JobList = []; var data = $(GridName).data("kendoGrid").dataSource._data; for (i = 0; i < data.length; i++) { JobList.
我试图填充剑道网格的当前上下文中不存在名称“作业列表”。我的视图JavaScript代码如下所示:
var GridName = "#DetailsGrid2_" + MS_MasId;
var JobList = [];
var data = $(GridName).data("kendoGrid").dataSource._data;
for (i = 0; i < data.length; i++) {
JobList.push(data[i].JobId);
}
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: '@Url.Action("GetJobs", "Jobs", new { JobId = JobList})',
contentType: "application/json",
},
........
var GridName=“#DetailsGrid2”+MS_MasId;
var作业列表=[];
var data=$(GridName).data(“kendoGrid”).dataSource.\u data;
对于(i=0;i
我只想将数组作业列表
传递给MVC控制器,但我不能这样做。请检查我的代码并更正我。我找到了答案
dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
$.ajax({
url: '@Url.Action("GetJobs", "Jobs")',
contentType: "application/json",
data : JSON.stringify({JobId : JobList}),
Type : "POST",
async : true,
traditional : true
});
},
...............
参考:
我收到一个错误名称“作业列表”在当前上下文中不存在
并考虑到斯蒂芬的评论
@Action()是在发送到视图作业列表之前解析的服务器端代码,它是一个javascript变量,此时甚至不存在
因此,您可以对现有代码做的就是在视图中的c#代码中创建一个Json
@{
var JobListJson = Newtonsoft.Json.JsonConvert.SerializeObject(JobList);
}
var jobList = JSON.parse(@Html.Raw(Json.Encode(JobListJson)));
然后在javascript块中,您可以通过从这个c#变量读取数据来创建一个变量,如下所示
@{
var JobListJson = Newtonsoft.Json.JsonConvert.SerializeObject(JobList);
}
var jobList = JSON.parse(@Html.Raw(Json.Encode(JobListJson)));
现在您有了一个包含数组数据的jquery变量
注意:您必须使用Nuget提供的Newtonsoft.Json进行此操作。@Url.Action()
是在发送到视图之前解析的服务器端代码作业列表
是一个javascript变量,那么它在那一点上根本不存在。作业列表
是作业ID的javascript数组元素。我只想将其传递给我的控制器。类似于:public JsonResult GetJobs(int[]JobID)….
用户可以手动构建url-../GetJobs?JobID=1&JobID=2&JobID=3
或使用读取的数据:
选项(在这种情况下,它将只是url:'@url.Action(“GetJobs”,“Jobs”)“,
我试过使用数据
选项,但它只是发送null
值。然后你显然做错了:)