Jquery MVC-ajax向控制器发布模型失败

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; }

以下是我想做的:

我的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 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);
        }
    });