我尝试将多个值传递给MVC中的Action,但 user 始终为null。
var form = $('form');
$.ajax({
type: "POST",
url: '@Url.Content("~/User/UpdateUser")',
data: { user: form.serialize(), NameOfCare: care },
success: function (result) {
if (result == "Ok") {
document.location.href = '@Url.Content("~/User/Index")';
}
}
});
如何在Ajax中传递包含多个值的表单?
答案 0 :(得分:1)
首先,您必须使用@Url.Action
代替@Url.Content
,因为您必须将form
数据发送到controller
才能处理data
.serialize
方法将一组表单元素编码为字符串以供提交。
你应该使用这个:data:form.serialize() + "&NameOfCare="+care
。
在server-side
上,您的方法应如下所示:
public ActionResult(UserViewModel user,string NameOfCare){
}
使用Model Binding user
对象将filled
包含您的数据
答案 1 :(得分:0)
您正在发送一个序列化对象,而它实际上是一个字符串。尝试以下示例。该操作将自动反序列化字符串。
function load() {
var dataT = $("#searchform").serialize();
var urlx = "@Url.Action("SR15Fetch", "SR15", new { area = "SALES" })";
debugger;
$.ajax({
type: "GET",
url: urlx,
data: dataT,
cache: false,
success: HandellerOnSuccess,
error: HandellerOnFailer,
beforeSend: Ajax_beforeSend(),
complete: Ajax_Complete(),
});
}