mvc 从视图传递到Controller 多个不同的实体类接收如何做呢?
展开全部
做MVC的话一般不推荐这种写法,过于复杂,不过技术上还是能实现的,利用BindAttribute
public class ClassA
{
public string Name { get; set; }
public int ID { get; set; }
}
public class ClassB
{
public string Title { get; set; }
public int ID { get; set; }
}
public ActionResult ManyModel([Bind(Prefix = "A")]ClassA a, [Bind(Prefix = "B")]ClassB b){
return View();
}
然后是Ajax
jQuery.ajax(
{
url: "/home/ManyModel",
data: { "A.Name": "Tom", "A.ID": 1, "B.Title": "Developer", "B.ID": 2 },
type: "POST"
});
主要就是利用BindAttribute的Prefix设置绑定规则,这里就是A开头的绑定到a,B开头的绑定到b,实际写的时候是带点的,后面跟Model的属性名
当然还可以使用BindAttribute的Include和Exclude来进行区分
如果不是Ajax而是直接表单提交,注意表单控件的name保持上述规则即可
参考:
http://msdn.microsoft.com/zh-cn/library/system.web.mvc.bindattribute.aspx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询