Asp.net mvc MVC 3-显示视图中字典中的值

Asp.net mvc MVC 3-显示视图中字典中的值,asp.net-mvc,dictionary,razor,Asp.net Mvc,Dictionary,Razor,我怀疑这很简单,我只是错过了 我有一个视图模型,它的属性之一是字典。此词典用于在编辑记录时用类别填充HTML选择。还有一个属性用于指示所选类别ID。但是,当我只是显示记录时,我想显示与CategoryID对应的键/值对的值 我的视图模型: public class ItemEditVM { public int ItemID { get; set; } public int? CategoryID { get; set; } public string ItemDesc

我怀疑这很简单,我只是错过了

我有一个视图模型,它的属性之一是字典。此词典用于在编辑记录时用类别填充HTML选择。还有一个属性用于指示所选类别ID。但是,当我只是显示记录时,我想显示与CategoryID对应的键/值对的值

我的视图模型:

public class ItemEditVM
{
    public int ItemID { get; set; }
    public int? CategoryID { get; set; }
    public string ItemDesc { get; set; }
    public Dictionary<int, string> CategorySelect { get; set; }
}
我也尝试过这种方法,但失败了,没有具体的错误消息:

@Html.DisplayFor(model => model.CategorySelect.SingleOrDefault(c=> int.Parse(c.Value) == model.CategoryID).Value)
我该怎么做

非常感谢

正确答案(感谢Mystere Man)

您是否尝试过:

@Model.CategorySelect[Model.CategoryID.Value]
正如您所说,CategoryID不会为null,所以这应该不是问题。。除非它可以为null,否则在这种情况下,您需要进行一些验证。

@foreach(Model.CategorySelect.keys中的var-keyValue)
@foreach(var keyValue in Model.CategorySelect.keys)
{
   foreach(var cat in @Model.CategorySelect[keyValue]
   {
      <p>@cat</p> <!--whatever html you fancy--> 
   }
}
{ foreach(var cat在@Model.CategorySelect[keyValue]中) { @cat

} }
一个简要说明-我没有设计这个数据库,在Item表中CategoryID是FK,但也可以接受null。我不知道你可以这么做。无论如何,为了不违反FK,实际上CategoryID总是会被填充。当然FK可以为null。PK不能为null。null的FK只意味着没有关系。Ac实际上是这样,它给了我一个重载错误(一些无效参数)@BKahuna-不应该这样,字典索引器只有一个参数,即值。您是否包含了.value?您是否确保在模型上使用大写字母M?不,我忘了。我为什么需要.value?我已在上面的原始问题中给出了正确答案。@Mystere-谢谢您的帮助!@BKahuna-这是一个可为空的type,意思是访问你必须访问的值。value。我只是想给你一种不同的方式。
@Model.CategorySelect[Model.CategoryID.Value]
@foreach(var keyValue in Model.CategorySelect.keys)
{
   foreach(var cat in @Model.CategorySelect[keyValue]
   {
      <p>@cat</p> <!--whatever html you fancy--> 
   }
}