将数据对象从ajax查询返回控制器
我试图从表单访问数据,并将其传递给MVC中的控制器 通过ID获取元素并作为字符串传递时,我成功地传递了数据: 这项工作:将数据对象从ajax查询返回控制器,ajax,asp.net-mvc,Ajax,Asp.net Mvc,我试图从表单访问数据,并将其传递给MVC中的控制器 通过ID获取元素并作为字符串传递时,我成功地传递了数据: 这项工作: data: JSON.stringify({ 'Answer0': $("#Answer0").val(), 'Answer1': $("#Answer1").val(), 'Question0': $("#Question0").val() }), 但是,我希望将数据作为viewmodel引入
data: JSON.stringify({
'Answer0': $("#Answer0").val(),
'Answer1': $("#Answer1").val(),
'Question0': $("#Question0").val()
}),
但是,我希望将数据作为viewmodel引入。当我将请求指定为:
data: JSON.stringify($('#' + formDiv).serializeObject()),
它将填充viewmodel,但是有一些字段未绑定到viewmodel,我希望随序列化表单一起传递。我已经尝试过添加它们,但是如果我同时传递序列化表单对象和附加字符串,它们似乎不会出现
function clickedNext(e, formDiv) {
var sURL = '@Url.Action("SurveySave", "Home")'
$.ajax({
url: sURL,
type: "POST",
contentType: 'application/json',
data: JSON.stringify($('#' + formDiv).serializeObject(), { 'Answer0': $("#Answer0").val(), 'Answer1': $("#Answer1").val() }),
success: function (data) {
//$('#InvestigationStatus').html(data);
}
});
控制器
[HttpPost]
public ActionResult SurveySave(SurveyViewModel s, string Answer0, string Answer1)
我觉得你不能在
JSON.stringify()中放置两个对象代码>
也许可以尝试以下方式:
var bothObjects = {
$('#' + formDiv).serializeObject(),
{ 'Answer0': $("#Answer0").val(), 'Answer1': $("#Answer1").val() }
}
...
JSON.stringify(bothObjects),
投反对票的是什么?显示您的模型和视图。首先,您使用的是视图模型,因此在POST方法中使用其他参数是没有意义的。其次,如果视图生成正确,则只需数据:$('form').serialize(),
即可正确序列化数据(而且.serializeObject()
甚至不是jQuery的一部分)