我正在使用mvc4应用程序。我使用.cshtml文件开发了一个表单,该文件继承了模型并具有相应的控制器操作。 我正在使用ajax jquery提交表单,
var body=$('#formId').serialize();
$.ajax({
url: submitAction,
type: "POST",
datatype: "json",
data: body,
success: function (data) {
if (data != null) {
alert("success");
}
});
“body”很好,它有序列化的数据,而submitAction是var,它保存我的控制器动作,并且控件被转移到那里。
编辑:
我的控制器看起来像,
public JsonResult(ParentModel model) /*here model always hold null values, WHY??*/
{
//stmts..
return Json(new {success=true}, JsonRequestBehaviour.AllowGet);
}
但是,我的控制器动作的参数显示为空值。有人能说出错误是什么,我该如何解决?
答案 0 :(得分:1)
$.ajax({
url: submitAction,
type: "POST", <-- you make post, but asp.net mvc controller receives default GET request
data: { model: body},
[HttpPost]
public JsonResult(string model) //<--now you pass string and to Deserialize in ParentModel
{
JavaScriptSerializer jss= new JavaScriptSerializer();
ParentModel pmodel = jss.Deserialize<ParentModel >(model);
return Json(new {success=true}, JsonRequestBehaviour.AllowGet);
}
尝试在您的请求中修改data:
部分,
删除数据类型:“json”
将类型model
参数编辑为字符串