我创建了一个部分视图,显示了资产名称,水体名称和县名称。部分视图基于Asset模型。如果我在资产/明细中,详细信息视图(使用资产模型)会加载部分,如下所示:
@Html.Partial("Summary", Model)
一切都很好,所有三个字段都加载。
如果我在使用AccessInspection模型的 AccessInspections / Edit 中,则部分加载如下:
@Html.Partial("Summary", Model.Asset)
但是,不加载AccessInspection.Asset.Waterbody.Name和AccessInspection.Asset.County.Name。 (我确实得到了Asset.Name值。)
模型与此相关:
资产
.AssetType(单)
.LandLocation(Single)
..水体(单人)
... ID
...名称
..County
... ID
...县
.AccessInspections(Collection)
我猜这与Lazy Loading有关。如何强制相关数据通过?
答案 0 :(得分:0)
在整理了一些东西之后,这就是我必须做的事情
在Assets中我可以使用Summary(移回到Views \ Assets文件夹中),传递模型如下:
@Html.Partial("Summary", Model)
在Views \ AccessInspections中我不得不为部分调用@ Html.Action,但是控制器必须指定返回PartialView(资产)以正确地将其解析为部分。我可以这样称呼它:
@Html.Action("Summary", "Assets", new { id = Model.Asset.Id })
控制器代码如下所示:
public ActionResult Summary(int id = 0)
{
Asset asset = db.Assets.Find(id);
if (asset == null)
{
return HttpNotFound();
}
return PartialView(asset);
}