Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据对象从ajax查询返回控制器_Ajax_Asp.net Mvc - Fatal编程技术网

将数据对象从ajax查询返回控制器

将数据对象从ajax查询返回控制器,ajax,asp.net-mvc,Ajax,Asp.net Mvc,我试图从表单访问数据,并将其传递给MVC中的控制器 通过ID获取元素并作为字符串传递时,我成功地传递了数据: 这项工作: data: JSON.stringify({ 'Answer0': $("#Answer0").val(), 'Answer1': $("#Answer1").val(), 'Question0': $("#Question0").val() }), 但是,我希望将数据作为viewmodel引入

我试图从表单访问数据,并将其传递给MVC中的控制器

通过ID获取元素并作为字符串传递时,我成功地传递了数据:

这项工作:

    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的一部分)