Jquery MVC-ajax向控制器发布模型失败
以下是我想做的: 我的viewmodel:Jquery MVC-ajax向控制器发布模型失败,jquery,ajax,asp.net-mvc-5,Jquery,Ajax,Asp.net Mvc 5,以下是我想做的: 我的viewmodel: public class Inputs { public string UserName { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string EmailAddress { get; set; } public string City { get; set; }
public class Inputs
{
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string Country { get; set; }
}
public class UserViewModel { }
public class LearnerSupportViewModel
{
public LearnerSupportViewModel()
{
Inputs = new Inputs();
SearchRecords = new List<UserViewModel>();
UserRecords = new List<UserViewModel>();
}
public Inputs Inputs { get; set; }
public IList<UserViewModel> SearchRecords { get; set; }
public IList<UserViewModel> UserRecords { get; set; }
}
发布时模型的内容:
"{\"Inputs\":{\"UserName\":\"user\",\"FirstName\":\"first\",\"LastName\":\"last\",\"EmailAddress\":\"email\",\"City\":\"city\",\"State\":\"state\",\"ZipCode\":\"zip\",\"Country\":\"0\"}}"
但是当我看到控制器的动作
public ActionResult Search(LearnerSupportViewModel model)
model.input的所有属性都为null
我做错了什么?您的ajax的数据属性对我来说不太好 将数据属性更改为:
data:{ model : model},
同时将类型从GET
更改为POST
,并在操作中添加HttpPost属性:
[HttpPost]
public ActionResult Search(LearnerSupportViewModel model)
您的ajax代码:
$.ajax({
url: '@Url.Action("Search","Learner")',
type: "POST",
data:
{
model : model
},
success: function (data) {
$('#supportForm').html(data);
}
});
您能否打开Fiddler或浏览器的开发工具,并包含实际发出的HTTP GET请求?我认为问题在于,您正在序列化为JSON,然后在HTTP GET中发送它。就是这样。Dang REST心态——不得不将ajax和动作方法更改为POST。
$.ajax({
url: '@Url.Action("Search","Learner")',
type: "POST",
data:
{
model : model
},
success: function (data) {
$('#supportForm').html(data);
}
});