视图特定模型中的列表和单变量

时间:2018-04-04 13:52:30

标签: asp.net-mvc

我正在创建一个用户可以搜索特定学校的页面,然后查看他们的搜索结果。因此,我认为我需要一个特定于视图的模型,其中既包括实体列表,也包括单个实体(对于搜索词)。我遇到的错误是“DashboardViewModel不包含listchools的定义......”

我已经创建了这样的模型:

 public class DashboardViewModel
{
[Display(Name = "University Name")]
public string name { get; set; }

public List<SchoolViewModel> listschools { get; set; }
}

 public class SchoolViewModel
{
public string instnm { get; set; }
}

我在尝试使用“@model DashboardViewModel”声明模型后,尝试按如下方式访问视图中的两个元素:

  <table>
            @foreach (var u in Model.listschools)
            {
                <tr>
                    <td>
                       @u.instnm
                    </td>

                </tr>
            }
</table>
                @using (Html.BeginForm("Index", "Dashboard", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
                {

                    @Html.AntiForgeryToken()
                    @Html.ValidationSummary("", new { @class = "text-danger" })

                    <div class="row form-group">
                        <div class="col-md-5">
                            @Html.LabelFor(m => m.name, new { })
                            @Html.TextBoxFor(m => m.name, new { @class = "form-control" })

1 个答案:

答案 0 :(得分:1)

通常最好将名称空间引用到View声明中的ViewModel:

@{
    @model Your.Namespace.DashboardViewModel
}

如果您错误地引用了另一个同名的ViewModel,

并确保Controller填充List(使用与相关ViewModel相同的引用)