Chr*_*ian 3 model-binding asp.net-mvc-4
我有一节课:
public class ClientInformation{
public string UserName {get; set;}
public ICollection<RegionDistrictCity> RegionDistrictCity
{
get;
set;
}
public class RegionDistrictCity
{
public string Region { get; set; }
public string District { get; set; }
public string City { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
为了使模型绑定器填充集合"ICollection RegionDistrictCity",应如何在html中为属性Region,Distirct,City格式化输入元素的name属性?
我尝试使用类型为"ClientInformation"的参数的动作方法和格式化为"[index] .PropertyName"的html名称属性,但在这种情况下,只有属性"UserName"被绑定.
我尝试使用参数名称"client"的操作方法,并将html名称属性格式化为"client [index] .PropertyName",但它不起作用.(如果我有一个"列表客户端",那么它会被填充)
谢谢.
小智 11
在MVC4中,您应该使用for循环而不是foreach来绑定您的集合.然后,模型绑定器将能够在您提交数据时填充模型.
@for (int i = 0; i < Model.RegionDistrictCity.Count; i++)
{
@Html.EditorFor(model => Model.RegionDistrictCity[i].Region)
}
Run Code Online (Sandbox Code Playgroud)
但这只有在您没有动态删除或添加项目时才会起作用.如果你想这样做,你应该使用steve sanderson创建的BeginCollectionItem帮助器.http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
| 归档时间: |
|
| 查看次数: |
8328 次 |
| 最近记录: |