0

我有以下视图模型:

 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' />

对于名为“正确”的字段,我无法从视图到模型的任何绑定,所以我想知道我使用的命名。有谁知道可能出了什么问题?

4

2 回答 2

2

映射集合的简单和最佳方法是使用索引器。使用以下代码片段

 @for (int i = 0; i < Model.CityDetails.Count; i++)
 {
    @Html.EditorFor(x => Model.CityDetails[i].Correct)
 }
于 2012-05-09T02:47:46.633 回答
1

您的视图没有必要看起来像那样。创建一个编辑器模板,然后使用 Html.EditorFor(x => x.CityDetails)。这将处理枚举集合并正确写出元素,以便它们映射回列表。

于 2012-05-09T02:00:27.853 回答