【发布时间】:2016-07-27 23:17:16
【问题描述】:
我正在尝试为狗做一个谱系网站,我正在尝试弄清楚如何在狗的详细信息页面上显示父母、后代等的数据。
@model DogPedigree.Entities.Dog
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<div>
<h4>Dog</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.AKCRegNumber)
</dt>
<dd>
@Html.DisplayFor(model => model.AKCRegNumber)
</dd>
<dt>
@Html.DisplayNameFor(model => model.name)
</dt>
<dd>
@Html.DisplayFor(model => model.name)
</dd>
<dt>
@Html.DisplayNameFor(model => model.sex)
</dt>
<dd>
@Html.DisplayFor(model => model.sex)
</dd>
<dt>
@Html.DisplayNameFor(model => model.breed)
</dt>
<dd>
@Html.DisplayFor(model => model.breed)
</dd>
<dt>
@Html.DisplayNameFor(model => model.birthday)
</dt>
<dd>
@Html.DisplayFor(model => model.birthday)
</dd>
<dt>
@Html.DisplayNameFor(model => model.sirenumber)
</dt>
<dd>
@Html.DisplayFor(model => model.sirenumber)
</dd>
<dt>
@Html.DisplayNameFor(model => model.damnumber)
</dt>
<dd>
@Html.DisplayFor(model => model.damnumber)
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.AKCRegNumber }) |
@Html.ActionLink("Back to List", "Index")
</p>
所以 model.AKCRegNumber 是我的主键,sirenumber 是父亲的 AKCRegNumber,damnumber 是母亲的 AKCRegNumber。关于如何从父母行中提取一些数据的任何提示,比如可能将名称显示为父母详细信息页面的链接?谢谢
【问题讨论】:
-
您的狗类应该具有从父级到子级的 1-many 导航属性。您应该能够在查询中填充这些值,以便它们可用于视图模型。
-
简而言之,如果您需要多个模型,请制作一个具有所有其他模型作为属性的大型模型。在这种情况下,如@TravisJ 所述,创建一个模型,其中包含对视图中所需的所有子节点的引用。
-
好的,重申一下你所说的以确保我理解,一个潜在的解决方案是创建一个 Pedigree 类,它是我想要显示的所有 Dog 对象的集合并且只对 Pedigree 有一个单独的视图。
-
是的谱系课程。虽然实际上这只是一个 Dog 类(或者如果 Dam 和 Sire 不是 Dog 的一部分,则可能是 Dog 的派生类),但您包含了 Sire 和 Dam 导航属性,而这些属性也被包含在内,因此您可以沿着家谱向上走只要你需要。现在您看到的更多是树状视图。
标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-5