MVC 3 - 在视图中显示字典中的值

时间:2011-10-26 20:58:32

标签: asp.net-mvc dictionary razor

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

我有一个视图模型,它将字典作为其属性之一。这个词典用于在我编辑记录时用类别填充HTML选择。还有一个属性指示所选的CategoryID。但是,当我只显示记录时,我想显示与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.TryGetValue(model.CategoryID, out val))

我也试过这个失败,没有特定的错误信息:

@Html.DisplayFor(model => model.CategorySelect.SingleOrDefault(c=> int.Parse(c.Value) == model.CategoryID).Value)

我该怎么做?

非常感谢

正确的答案(感谢Mystere Man)

@Html.DisplayFor(model=>model.CategorySelect[Model.CategoryID.Value])

2 个答案:

答案 0 :(得分:7)

你试过了吗?

@Model.CategorySelect[Model.CategoryID.Value]

因为正如你所说,CategoryID不会为null,那么这应该不是问题..除非它可以为null,在这种情况下你需要做一些验证。

答案 1 :(得分:6)

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