我正在创建一个用户可以搜索特定学校的页面,然后查看他们的搜索结果。因此,我认为我需要一个特定于视图的模型,其中既包括实体列表,也包括单个实体(对于搜索词)。我遇到的错误是“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" })
答案 0 :(得分:1)
通常最好将名称空间引用到View声明中的ViewModel:
@{
@model Your.Namespace.DashboardViewModel
}
如果您错误地引用了另一个同名的ViewModel,
并确保Controller填充List(使用与相关ViewModel相同的引用)