asp.net mvc ViewData - PullRequest
       17

asp.net mvc ViewData

0 голосов
/ 16 января 2011

У меня проблемы с анализом некоторых данных в PartialView. При разборе в словаре свойства Values ​​и Keys устанавливаются в ViewData ... Как я могу объединить словарь с ViewData ... чтобы я мог получить доступ к своим элементам словаря с помощью клавиш, как это:

ViewData["key"] as IList<T>;

Вместо

ViewData["Values] <- Which is a List that Contains my list.

Я собираюсь использовать это так ... просто не хочу анонимных / магических имен строк.

<%: Html.EditorFor(x => x.GroupId, "SimpleSelectList", new { Selected = 10}) %>

Я надеюсь сделать что-то подобное. <%: Html.EditorFor (x => x.GroupId, "SimpleSelectList", Html.AddViewData (Model.List))%>

С этим методом расширения:

public static IDictionary AddViewData<T>(this HtmlHelper helper, T item)
{
    var dictionary = new Dictionary<string, object>();
    dictionary.Add(typeof(T).Name, item);
    return dictionary;
}

Тогда я всегда буду знать, что должен искать шаблон SimpleSelectList ... и больше не нужно будет зависеть от еще одной волшебной строки ...

Или как люди это делают? Просто пытаюсь проникнуть в кодовую базу и как люди делают такие вещи ...

1 Ответ

1 голос
/ 16 января 2011

Лично я бы не использовал ViewData atall в этом контексте.

Намного понятнее и яснее иметь модель представления, которая подразумевает, что ваш словарь является свойством.Затем вы можете передать эту модель представления вашему представлению и частичному представлению ... или просто части модели представления вашему частичному представлению (в зависимости от того, какие данные вам нужны).

...