Однажды я пошел с напечатанным ViewDataModels. У меня никогда не было необходимости помещать вещи в словарь ViewData и работать с волшебными строками в View. Волшебные струны кажутся грязными и очень подвержены ошибкам.
Что я обычно делаю, это создаю класс ViewDataModel для всех моих контроллеров, то есть:
- HomeController
- HomeModel
- HomeViewDataModel
- Home ActionResult Просмотр страниц.
Все эти * ViewDataModel расширяют общий класс ViewDataModel, полезный для передачи глобальных данных конфигурации сайта в представления.
Мне все равно, что я положил в эту ViewDataModel. Если мне это нужно, я делаю его свойством и заполняю его всякий раз, когда это необходимо, будь то какой-то класс LINQ to SQL или произвольный класс конфигурации меню.
Даже если вам не нужны дополнительные свойства, кроме объекта модели, позже добавить свойство проще, чем заново набрать вид. Довольно много моих классов ViewDataModel состоят из 1 свойства, но знание того, что я могу добавить больше без необходимости что-либо реорганизовывать, - это счастье.
Я часто думаю о ASP.NET MVC как о ASP.NET MVVM как о классах транспортера ViewDataModel, которые транспортируют модель и ненужные (?) Данные в представление, играют огромную роль.