我原以为这是一个相当普遍的问题,所以希望很容易解决。
我有一个基本的用户类,如:
public class User
{
public User()
{
SecurityGroups = new HashSet<SecurityGroup>();
}
public virtual Team Team { get; set; }
public int TeamId {get;set;}
public virtual ICollection<SecurityGroup> SecurityGroups { get; set; }
}
然后我通过ASP MVC应用程序创建一个新实例。返回的帖子数据类似于
"TeamId=2&SecurityGroups=1&SecurityGroups=5"
使用类似
的控制器操作public ActionResult(User user)
{
throw new NotImplementedException();
}
基于此,MVC绑定器正在填充TeamId属性,但是(可以理解)它不知道如何填充SecurityGroups。
我想知道的是,是否有可能以类似于TeamId的方式获得“原始集合”,默认绑定器可以自动填充? e.g。
public ICollection<int>SecurityGroupIds {get;set;}
感谢您的帮助
答案 0 :(得分:1)
假设你有:
public ICollection<int> SecurityGroupIds { get;set; }
你可以像这样填充它:
TeamId=2&SecurityGroupIds=1&SecurityGroupIds=2&SecurityGroupIds=3
或者您也可以填充复杂的集合对象:
TeamId=2
SecurityGroups[0].SomeProperty=value1
SecurityGroups[1].SomeProperty=value2
...
查看following article以了解有关默认模型绑定器对集合和词典所期望的有线格式的更多信息。