Asp.net MVC:控制器,第一个参数为json,第二个参数为View中的字符串

时间:2015-07-04 04:56:30

标签: c# jquery asp.net json asp.net-mvc

我们有一种情况,我们希望控制器将第一个参数作为json(模型)作为第二个参数作为除模型之外的一些附加数据(例如Flag,从事件驱动的源控件等),我们尝试过使用jQuery调整但是浏览器检查元素中显示的所有错误都已完成。

我们的控制器通常是这样的:

public async Task<ActionResult> Foo(Bar b, string additionaldata)
{
    if (additionaldata="Deleted")
    {

    }
    else if (additionaldata="Favorite")
    {

    }
}

在内部查看它是这样的:

$("#delete").click(function () {
                    $.ajax({
                        url: "/Index/Foo",
                        type: "POST",
                        data: $("#myform").serialize(), 
                        dataType: "json"
                    }).done(function (model) {
                        $("#Foo_Id").val(model.Foo.Id);
                    });
                });

就模型而言,这个jQuery工作正常,但就我们尝试添加一些额外的参数而言,我们一无所知。

请建议我们如何通过它。

1 个答案:

答案 0 :(得分:2)

On选项是使用FormData构建模型并添加其他数据

var formdata = new FormData($('#myform').get(0)); // serialize the form
formdata.append('additionaldata', 'Favorite'); // add additional properties
$.ajax({
  url: '@Url.Action("Index", "Foo")',
  type: 'POST',
  data: formdata,
  processData: false,
  contentType: false,         
});