3

我有一堂课:

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; }
  }
}

为了使模型绑定器填充集合“ICollection RegionDistrictCity”,应如何格式化 html 中属性 Region、Distirct、City 的输入元素的名称属性?

我尝试使用“ClientInformation”类型的参数和格式为“[index].PropertyName”的html名称属性的操作方法,但在这种情况下,只有属性“UserName”被绑定。

我尝试使用参数名称为“client”的操作方法,并将 html 名称属性的格式设置为“client[index].PropertyName”,但它不起作用。(在那种情况下,如果我有一个“列表客户端”,那么它将被填充)

谢谢。

4

1 回答 1

11

在 MVC4 中,您应该使用for 循环而不是 foreach来绑定您的集合。然后,模型绑定器将能够在您提交数据时填充您的模型。

@for (int i = 0; i < Model.RegionDistrictCity.Count; i++)
        {
            @Html.EditorFor(model => Model.RegionDistrictCity[i].Region)
        }

但这仅在您不动态删除或添加项目到您的收藏时才有效。如果你想这样做,你应该使用由 steve sanderson 创建的 BeginCollectionItem 助手。http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

于 2013-08-25T14:10:18.233 回答