我有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控制器动作?
答案 0 :(得分: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');
}
});
JSON.stringify
方法本身内置于现代浏览器中,但如果您需要支持旧版浏览器,则可以包含json2.js脚本。
答案 1 :(得分:1)
开箱即用的最简单的方法是将所有部分都开心(jQuery,MVC Framework),将对象图序列化为客户端上的JSON数据并将其传递给POST。 MVC框架实际上非常适合为您排序模型绑定。
这里有一个类似复杂对象的可下载示例: http://theycallmemrjames.blogspot.ca/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html
它处理许多不同场景中的模型绑定。查看行李箱示例以了解您的需求。免责声明:这是我的博客,希望不会冒犯。
干杯。