我试图从表单访问数据并将其传递给MVC中的控制器。
当我按ID获取元素并以字符串传递时,我成功传递了数据:
这有效:
data: JSON.stringify({
'Answer0': $("#Answer0").val(),
'Answer1': $("#Answer1").val(),
'Question0': $("#Question0").val()
}),
但是我想将数据作为viewmodel。当我将请求指定为:
data: JSON.stringify($('#' + formDiv).serializeObject()),
它将填充视图模型,但是有些字段未绑定到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)
答案 0 :(得分:0)
我觉得你不能把两个对象放在JSON.stringify();
也许尝试类似的事情:
var bothObjects = {
$('#' + formDiv).serializeObject(),
{ 'Answer0': $("#Answer0").val(), 'Answer1': $("#Answer1").val() }
}
...
JSON.stringify(bothObjects),