2010-10-21 5 views
1

Когда мне нужно использовать поиск Я обычно включаю в себя свойство ID в классе вида модели, так что я могу использовать его таким образом в соответствующем представленииКак обращаться с поиском?

<%= Html.LabelFor(model => model.LookupTableID)%> 
<br /> 
<%= Html.DropDownListFor(model => model.LookupTableID, Model.LookuptableList, new {}) %> 

, имеющее Model.LookuptableList как свойство в самой модели, как это:

public IEnumerable<SelectListItem> LookuptableList { 
    get { 
     return GetLookuptableList().Select(
      t => new SelectListItem { Text = t.Description, Value = t.LookupTableID.ToString() }); 
    } 
} 

Но я не уверен, что это хороший способ справиться с этим из-за функции GetLookuptableList() внутри класса вид модели.

есть ли лучший/чистый способ сделать это?

+0

Ну, что такое 'GetLookuptableList()' then? Почему, по вашему мнению, проблематично, чтобы этот метод был в модели? –

+0

Эта функция восстанавливает список поиска из основного хранилища. Я не думаю, что это проблематично. Я просто думаю, что не должно быть там. Пребывание в модели не следует должным образом разделять проблемы .... – Lorenzo

+1

Да, Лоренцо. Я думаю, что доступ к базовому хранилищу из модели представления - уровень Презентации - может быть заменен членом IEnumerable, заполненным на уровне контроллера. - Уровень приложения. поэтому ваш viewModel может оставаться агностиком от доступа к базовому хранилищу – SDReyes

ответ

1

Вы включаете всю таблицу поиска со всеми экземплярами модели представления. Немного перебор. Обычно я создаю статический класс утилиты с таблицей поиска, которая возвращает SelectListItem.

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