代码之家  ›  专栏  ›  技术社区  ›  PeteShack

使用ViewModel时,ASP.NET MVC“添加视图”向导不会预填充字段

  •  0
  • PeteShack  · 技术社区  · 14 年前

    在vs 2010中,当您使用“添加视图”向导创建具有强类型视图(如models.person)的编辑视图时,模板将为您生成所有的person字段。

    如果使用视图模型,请执行以下操作:

    public class PersonVM
    {
       public Person person;
       public List<Team> TeamList = new TeamServices().TeamPickList();
       ...
    }
    

    模板不会为model.person创建所有字段。

    有什么办法可以做到这一点吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Clicktricity    14 年前

    不是自动的。

    最简单的方法是创建一个新视图,选择 Team 作为视图数据类,选择“list”作为视图内容。然后,您可以剪切并粘贴从此视图生成的标记到您已经创建的标记中。

        2
  •  1
  •   Justin Soliz    14 年前

    如果使用列表模板,它通常会创建一个表并在IEnumerable模型上迭代。您还可以使用codetemplates文件夹中的一个助手和/或自定义模板:

    <% Html.DisplayForModel(); %>
    

    如果需要编辑:

    <% Html.EditorForModel(); %>
    

    如果你在列表上有问题,可以从一个助手开始?

    <%: Html.DropDownListFor(model => model.TeamList, new SelectList(Model.TeamList)) %>