我正在尝试将两个参数从 javascript 传递给 mvc 控制器。第一个是模型,第二个是字符串。
这是html:
<input type="button" onclick="save(Json.Encode(@Html.Raw(model)), @Html.Raw(object.Id))" />
这是javascript:
function save(model, id) {
$.ajax({
url: '@Url.Action("SaveModel", "Test")',
type: "POST",
datatype: "json",
data: { model: model, id: id }
}
});
}
这是控制器:
[HttpPost]
public ActionResult SaveModel(Model model, string id)
{
return null;
}
如果我只传递模型参数data: { model: model }
,它就可以工作。请求的帖子变成了这样:
AProperty value1
AnotherProperty value2
AnArray[0][Property...
AnArray[1][Property...
etc.
但是如果我尝试传入两个参数data: { model: model, id: id }
,请求的帖子就会变成
model[AProperty] value1
model[AnotherProperty] value2
model[AnArray][0][Property...
model[AnArray][1][Property...
etc.
当请求到达控制器时,模型对象被实例化,但所有值都变为空。我猜序列化器失败了。
所有帮助表示赞赏。