这是控制器
public ViewResult AddNewRow(ProjectBudgetModel model)
{
//Some oprations goes here on the passed model the return to the same view
return View("AddNewProjectBudget", model);
}
这是一个像
这样的ajax调用的视图$.ajax({
url: '@Url.Action("AddNewRow", "ProjectBudget")',
type: 'post',
data: {model: '@Model'},
contentType: 'application/json; charset=utf-8;',
dataType: 'json',
success: function (response) {
alert(response.success)
return;
},
error: function (x) {
alert(x.status);
}
});
在ajax调用的数据头中传递的@Model是ProjectBudgetModel
当我将数据传递给控制器时,这里出现了问题 它甚至没有达到控制器中addNewRow函数的brekpoint任何帮助?
答案 0 :(得分:2)
data: {model: '@Model'},
完全不符合你的想法。查看生成的标记,看看这会发出一些破碎的值。
应该是这样的:
data: JSON.stringify(@Html.Raw(Json.Encode(Model))),
JSON.stringify
方法本身内置于现代浏览器中。如果由于某些原因您需要支持石器时代的浏览器,您可以在页面中加入json2.js脚本来定义方法。
答案 1 :(得分:0)
我能够将视图中的数据发送到控制器上的模型的唯一方法是使用:
data: $("#FORM_ID").serialize(),
如果我使用:data:JSON.stringify(@Html.Raw(Json.Encode(Model))),
,控制器会收到一个空模型。