我们有一种情况,我们希望控制器将第一个参数作为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工作正常,但就我们尝试添加一些额外的参数而言,我们一无所知。
请建议我们如何通过它。
答案 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,
});