日期:2014-05-17  浏览次数:20528 次

MVC3能自动给Model的复杂对象属性赋值吗
比如Model是这样的
public class Model{
  public int Id{get;set;}
  public string Name{get;set;}
  public IList<Role> Roles{get;set;}
}

其中Role对象为
public class Role{
  public int Id{get;set;}
  public string Name{get;set;}
}

比如View中有3个Role的checkbox 那么checkbox的name属性要写成怎么样子才能自动给Model中的Roles赋值(我只要赋Role的Id就行了)
mvc

------解决方案--------------------
var m = new Model() { Id = xxx, Name = xxx };
m.Roles = new List<Role>() { new Role() { Id = xxx, Name = xxx } };
------解决方案--------------------
Model m = new Model();
List<Role> list=new List<Role>();

然后分解动作
foreach (var item in checkbox)
{
    Role R=new Role();
    R.id=this.CheckBox.value;
    R.name=this.CheckBox.Text;
    list.Add(R);
}

m.Roles=list;