使用下面的脚本传递一个强类型的模型,它可以正常工作.有没有办法在模型中同时包含vars的值作为附加参数?我知道如何传递模型或变量,但不能同时传递.
var sample1 = "aaa";
var sample2 = "bbb";
$.ajax({
url: "Action/Controller",
data: $("#form123").serialize(),
cache: true,
type: "POST",
dataType: 'html',
success: function (data) {
$('#form123').html(data)};
});
解决方法:
您可以将数据对象设置为包括三个属性,一个属性用于序列化表单,另一个属性用于样本.
data: {
formData: $("#form123").serialize(),
sample1: sample1,
sampleTwo: sample2
}
更新:鉴于此解决方案不适用于您的情况,因此有另一种选择.
由于.serialize()的结果是将其输入转换为标准的URL编码形式,例如prop1 = val1& prop2 = val2,因此您可以将其他变量附加到输出字符串中.例如,
var formData = $("#form123").serialize() + '&' + sample1 + '&' + sample2;
$.ajax({
...
data: formData,
...
});
但是,这有点麻烦,不容易扩展为更多的附加参数,并且在不清除sample1和sample2的值的情况下不应该这样做.
根据您的情况,这可能是一个可行的解决方案,但是我认为Robert Levy’s suggestion将数据添加到表单中的隐藏输入中可能是更好的选择.