我有以下viewmodel:
public class CityViewModel
{
public CityViewModel() {
CityDetails = Enumerable.Range(1,2).Select(x => new CityDetail()).ToList();
}
public City City { get; set; }
public IList<CityDetail> CityDetails { get; set; }
public class CityDetail
{
public CityDetail() {
Correct = true;
}
public bool Correct { get; set; }
}
在我看来,我有以下内容:
@foreach (int index in Enumerable.Range(0, Model.CityDetails.Count()))
{
<input type="hidden" name="CityDetails[@index]_Correct)" value="false" />
<input type="checkbox" id="CityValid" name="CityDetails[@index]_Correct" value='@Model.CityDetails[index].Correct' />
我无法从名为“正确”字段的视图到模型的任何绑定,所以我想知道我使用的命名。有没有人知道可能出现什么问题?
答案 0 :(得分:2)
映射集合的简单方法是使用索引器。使用以下代码段
@for (int i = 0; i < Model.CityDetails.Count; i++)
{
@Html.EditorFor(x => Model.CityDetails[i].Correct)
}
答案 1 :(得分:1)
您的视图无需像这样。创建一个编辑器模板,然后使用Html.EditorFor(x =&gt; x.CityDetails)。这将处理枚举集合并正确地写出元素,以便它们映射回列表。