2011-01-16 4 views
0

У меня возникли проблемы с разбором некоторых данных в PartialView. При разборе в Словаре в свойстве значение и ключи устанавливаются в ViewData ... Как можно объединить словарь с ViewData ... так что я могу получить доступ к моему словарю элементов с ключами, как это:asp.net mvc 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.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

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

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

+0

Да ... это была также моя первая идея. Но как бы вы поступили в этом сценарии. Мне нужно разобрать 2 вещи. Список объектов для отображения и выбранное значение (id). Как вы можете видеть, я сомневаюсь в том, как структурировать его в чистом виде. – Syska

 Смежные вопросы

  • Нет связанных вопросов^_^