通过jQuery ajax将自定义对象发布到MVC3操作方法

Sha*_*hin 2 asp.net-mvc jquery asp.net-mvc-3

我有3个以下定义的类

  public class UserRole
    {
        public User User { get; set; }
        public IEnumerable<Role> Role { get; set; }
    }
public class Role
{
   public int Id{ get; set; }
   public string RoleName{ get; set; }
}
public class User
{
   public int Id{ get; set; }
   public string UserName{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是动作方法:

  // GET: /Admin/UserManagement/Create
        [HttpPost]
        [Transaction]
        public ActionResult Save(UserRole userrole)
        {
        }
Run Code Online (Sandbox Code Playgroud)

在Jquery中是否有一种方法可以将一些JavaScript变量序列化为类Obj,然后通过AJAX帖子将其发送到MVC控制器动作?

Dar*_*rov 16

您可以发送JSON请求:

var data = {
    user: {
        id: 5,
        userName: 'john'
    },
    role : [
        { id: 1, roleName: 'role 1' },
        { id: 2, roleName: 'role 2' },
        { id: 3, roleName: 'role 3' }
    ]
};

$.ajax({
    url: '@Url.Action("Save")',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(data),
    success: function(result) {
        alert('success');
    }
});
Run Code Online (Sandbox Code Playgroud)

JSON.stringify方法本身内置于现代浏览器中,但如果您需要支持旧版浏览器,则可以包含json2.js脚本.