我正在學習使用ASP.NET和Entity Framework在C#中編寫MVC網站。在ASP.NET視圖中使用Html.DisplayFor的詞典查找
但是,我正在努力編寫一個可以與Html.DisplayFor
方法一起使用的字典查找。
說我有以下兩種模式:
public class Dog
{
public int Id;
public string Name;
public int BreedId;
(...)
}
public class Breed
{
public int Id;
public string Name;
(...)
}
然後,在控制器的地方,我創建一個包含所有品種,由Id
索引的字典,並將其分配給ViewBag.Breeds
。
在Dogs/Index
視圖,我用類似的東西:
@model IEnumerable<App.Models.Dog>
<table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@(ViewBag.Breeds[item.BreedId].Name)
</td>
</tr>
}
</table>
及其產生的狗及其品種的表格,如預期。
但是,如果我嘗試使用Html.DisplayFor
方法裏面的詞典查詢,我得到的,因爲表達式樹不能包含一個動態操作錯誤:
@Html.DisplayFor(modelItem => ViewBag.Breeds[item.BreedId].Name)
它鑄造一個顯式類型的字典也不起作用:
@Html.DisplayFor(modelItem => ((Dictionary<int, Breed>)ViewBag.Breeds)[item.BreedId].Name)
有沒有辦法讓它工作?