【问题标题】:Posting Custom objects to MVC3 action method via jQuery ajax通过 jQuery ajax 将自定义对象发布到 MVC3 操作方法
【发布时间】:2012-04-24 01:48:31
【问题描述】:

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

这是动作方法:

  // GET: /Admin/UserManagement/Create
        [HttpPost]
        [Transaction]
        public ActionResult Save(UserRole userrole)
        {
        }

在 Jquery 中有没有办法将一些 JavaScript 变量序列化为类 Obj,然后通过 AJAX 帖子将其发送到 MVC 控制器操作?

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-3 jquery


【解决方案1】:

您可以发送 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');
    }
});

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

【讨论】:

    【解决方案2】:

    开箱即用的最简单方法是在客户端将对象图序列化为 JSON 数据并将其传递给 POST。 MVC 框架实际上非常擅长为您整理模型绑定。

    这里有一个包含类似复杂对象的可下载示例: http://theycallmemrjames.blogspot.ca/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html

    它在许多不同的场景中处理模型绑定。根据您的需要查看手提箱示例。免责声明:这是我的博客,希望不要冒犯。

    干杯。

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 2011-06-14
      • 2023-03-17
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 2013-02-28
      • 2013-09-16
      相关资源
      最近更新 更多