ASP.net mvc视图无法与List绑定模型

时间:2015-08-17 12:40:12

标签: asp.net-mvc razor asp.net-mvc-5

我似乎无法绑定此特定视图中的任何List。我的代码是

查看:

@for (int ctr2 = 0; ctr2 < Model.AnimalsVM.Count(); )
{
     <tr>
     @for (int ctr = 0; ctr < 5 && ctr2 < Model.AnimalsVM.Count(); ctr++, ctr2++)
     {
     <td class="width50px">@Model.AnimalsVM[ctr2].Name&nbsp;&nbsp;</td>
     <td class="width50px">@Html.TextBoxFor(m => m.AnimalsVM[ctr2].Code)%
     @Html.HiddenFor(m => m.AnimalsVM[ctr2].AnimalID)
     @Html.HiddenFor(m => m.AnimalsVM[ctr2].Name)
     </td>
     }
     </tr>
}

我的视图模型构造如下:

public class ConfigureVM
{
    public string Name { get; set; }

    public List<AnimalVM> AnimalsVM = new List<AnimalVM>();

}

public class AnimalVM
{
    public int? AnimalID { get; set; }

    public string Name { get; set; }

    public string Code { get; set; }

    public DateTime? LastUpdated { get; set; }
}

AnimalVM确实在帖子上绑定了。任何人都可以解释为什么AnimalVM在发布期间没有绑定。

1 个答案:

答案 0 :(得分:1)

您需要AnimalsVM

上的getter和setter
public List<AnimalVM> AnimalsVM { get; set; }

然后在无参数构造函数(或控制器

)中初始化集合
public class ConfigureVM
{
  public ConfigureVM()
  {
    AnimalsVM = new List<AnimalVM>();
  }
  public List<AnimalVM> AnimalsVM { get; set; }
  ....
}

附注:不确定嵌套for循环的目的是什么,但根据AnimalsVM中的项目数量,只有前5个会在发布时绑定。