我喜欢两种方法。
第一个是直接的,使用实体框架中的导航方法:
控制器:
public ActionResult Details(short id = 0)
{
AccCompany accComp = db.AccCompany.Find(id);
if (accComp == null)
{
return HttpNotFound();
}
return View(accComp);
}
看法:
@model Some.Entities.AccCompany
<div class="displayLabel">
@Html.DisplayNameFor(model => model.Company)
</div>
<div class="displayField">
@Html.DisplayFor(model => model.Company)
</div>
<div class="displayLabel">
@Html.DisplayNameFor(model => model.AccControl.CostCentre)
</div>
<div class="displayField">
@Html.DisplayFor(model => model.AccControl.CostCentre)
</div>
第二个涉及为特定视图创建自定义“视图模型”并将其用作视图中的模型,更好地进行验证:
SomeViewModel.cs:
public class SomeViewModel
{
[Required]
public string Company { get; set; }
[Required]
[Display(Name = "Cost Centre")]
public string CostCentre { get; set; }
}
然后将其填充到您的控制器中:
public ActionResult Details(short id = 0)
{
AccCompany accComp = db.AccCompany.Find(id);
if (accComp == null)
{
return HttpNotFound();
}
SomeViewModel vm = new SomeViewModel();
vm.Company = accComp.Comany;
vm.CostCentre = accComp.AccControl.CostCentre;
return View(vm);
}
然后是视图:
@model Some.SomeViewModel
<div class="displayLabel">
@Html.DisplayNameFor(model => model.Company)
</div>
<div class="displayField">
@Html.DisplayFor(model => model.Company)
</div>
<div class="displayLabel">
@Html.DisplayNameFor(model => model.CostCentre)
</div>
<div class="displayField">
@Html.DisplayFor(model => model.CostCentre)
</div>
希望这可以帮助