【发布时间】:2016-10-23 12:52:54
【问题描述】:
我有一个模型,可以代表 3 个类别。我想在我看来,为每个类别制作 3 个不同的表格,其中包含相关字段。我认为为此我需要为每个类别使用带有视图模型的局部视图。
所以我的主要模型是“广告”,它有 3 个子视图模型(房地产、汽车和服务)。 这里是我如何在我的家庭控制器上实现 Realty 操作的示例:
public ActionResult Realty()
{
var ads = db.Ads.Include(a => a.Realty);
var vm = new List<RealtyViewModel>();
foreach (var ad in ads)
{
vm.Add(new RealtyViewModel
{
Title = ad.Title,
Descirpiton = ad.Descirpiton,
Type = ad.Realty.Type,
NumberOfRooms = ad.Realty.NumberOfRooms
});
}
return PartialView(vm);
}
那么我的局部视图,是这样的:
@model IEnumerable<OGAS.Areas.Category.ViewModels.RealtyViewModel>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Type)
</th>
<th>
@Html.DisplayNameFor(model => model.Descirpiton)
</th>
<th>
@Html.DisplayNameFor(model => model.NumberOfRooms)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Descirpiton)
</td>
<td>
@Html.DisplayFor(modelItem => item.NumberOfRooms)
</td>
</tr>
}
</table>
然后在我的索引页面中(不使用任何模型),我这样调用局部视图:
@{Html.RenderPartial("Realty");}
然后我收到以下错误:
App_Web_gdyh352c.dll 中出现“System.NullReferenceException”类型的异常,但未在用户代码中处理
您能否告知这种方法是否良好(调用 3 个虚拟机),如果可以,如何实施?
谢谢。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-partialview