MVC 3 - отображать значение из словаря в поле зрения - PullRequest
7 голосов
/ 27 октября 2011

Я подозреваю, что это просто, и я просто упускаю это.

У меня есть модель представления, в которой одним из свойств является словарь.Этот словарь предназначен для заполнения 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 ]

7 голосов
/ 27 октября 2011

Вы пробовали:

@Model.CategorySelect[Model.CategoryID.Value]

Поскольку, как вы говорите, CategoryID не будет нулевым, тогда это не должно быть проблемой .. если только оно не может быть нулевым, в этом случае вам нужно сделатьнекоторая проверка.

6 голосов
/ 27 июня 2012
@foreach(var keyValue in Model.CategorySelect.keys)
{
   foreach(var cat in @Model.CategorySelect[keyValue]
   {
      <p>@cat</p> <!--whatever html you fancy--> 
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...