2010-01-20 5 views
3

Должен ли я рассматривать ASPM MVC ViewModels, содержащий только типы flat и primitypes или должен содержать сложные типы моделей Core/Domain?Контент ASP.NET MVC ViewModel

Я ищу лучшие практики.

Спасибо.

+1

Я думаю, вы могли бы найти ответы на это сообщение: http://stackoverflow.com/questions/2095984/asp-net-mvc-terminology-is-tripping-me-up-why-viewmodel/. – ahsteele

ответ

6

Сделайте то, что имеет смысл.

Нет авторитетных источников, которые расскажут вам, что использование ViewModel с примитивными типами будет убивать котят, потому что они были бы неправильными. И для каждого эксперта, который говорит вам, что использование ViewData с магическими строками в порядке, там будут пуристы, которые скажут вам, что строго типизированные объекты - единственный путь.

Я пишу приложения, которые читают из базы данных и отображают данные на веб-странице. Я пробовал это в обоих направлениях (используя ViewData и используя объект ViewModel), и я счастлив, когда у меня есть объект ViewModel для создания проекта на веб-странице. Класс ViewModel является местом для инкапсуляции таких вещей, как проверка правильности и логика представления, если они мне нужны, и он обеспечивает структуру данных и сильную типизацию, которые мне нравятся.

Если я просто хочу отобразить запись из одного из моих классов Linq to SQL, и мне не нужны дополнительные функции, такие как списки выпадающих списков, я могу напрямую использовать объект Linq to SQL. Но если у меня есть дополнительные функции, я помещаю все в класс ViewModel и проектирую экземпляр ViewModel (или IEnumerable или IQueryable из них) в представление.

Так что я редко использую ViewData, но это только мой стиль. Приятно знать, что он все еще там, если мне это нужно.

+1

Слишком правдоподобно, я видел догматически сконструированные проекты с тысячами строк утомительного шаблона кода, которые не имели никакой цели, кроме как удовлетворить некоторую философию. – jfar