[英]How to search for parent id in view from model?
我需要在視圖中顯示一些父子關系數據。 以下是我的代碼:
@model PagedList.IPagedList<Test.Domain.TestTable>
<table width="100%">
<tr>
<td>Name</td>
<td>Parent</td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.ParentID)
</td>
</tr>
}
<tr>
<td>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
-----------------
-----------------
</td>
</tr>
</table>
現在,我想顯示父名稱而不是父ID,它在數據庫中具有以下結構:
ID 名稱 家長 ID
1 約翰· 諾爾
2 院長 1
3 山姆 1
為了顯示父母的名字,我嘗試了以下代碼,但是這些都不起作用:
@Model.Where(screenParent => screenParent.ID == item.ParentID).Select(screenParent => new { screenParent.Name})
System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Test.Domain.TestTable,<>f__AnonymousType5`1[System.String]]
您能建議為什么它顯示在代碼行上方嗎?
還可以做些什么來獲得父名稱而不是父ID。
提前致謝。
在這里做幾個假設。
您在模型中是否擁有針對Parent的屬性,或者只是在獲取ParentID? 如果僅輸入ID,建議您更改模型/映射,以便FK輸入整個對象引用。
如果您已經提取了整個Parent對象,請知道實體框架不會自動為您延遲加載Parent。 查詢TestTable時,必須明確告知它要加載它。
您可以通過2種不同的方式執行此操作。
使您的父級屬性為虛擬。 即
公共虛擬TestTable父{ 組; }
然后,當您嘗試訪問TestTable.Parent時,它將從數據庫中加載。 這將允許您訪問名稱。
查詢測試表時顯式加載父級,即
myDBContext.TestTables.Include(“ YourParentPropertyName”)。Where(....);
您視圖中的最終結果將如下所示:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Parent.Name)
</td>
</tr>
}
讓我知道是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.