Я читал книгу Professional ASP.NET MVC 1.0, а также читал другие источники, рассказывающие об использовании ViewModel вместо ViewData из ваших контроллеров в Views. Но потом я вижу очень много примеров использования ViewData в сложных сценариях, где нет другого пути, кроме как получить что-то из ViewData. Но затем я прочитал книгу, подобную Pro ASP.NET MVC Framework, и все, о чем он говорит, - это только ViewData, а не ViewModel. Так ViewModel - это совершенно новая концепция или что?
Я вижу, что ViewModel - гораздо лучший подход, но является ли это надежной альтернативой? Я имею в виду, что ViewData так легко доступен для вас в других вещах, таких как объект HtmlHelper, где ViewModel нет. Или, например, использовать его в пользовательском элементе управления (http://www.codeproject.com/KB/custom-controls/MVCCustomControls.aspx).. Итак, могу ли я использовать комбинацию обоих в зависимости от различных целей или что? Что если я по какой-либо причине хочу получить доступ к ViewModel в моем методе Extension? Я не знаю, какой путь выбрать. Я знаю, что ViewData не является строго типизированной, но вы можете настроить свой вид, чтобы указать тип и, следовательно, сделать типизированными свои ViewData, но я просто удивляюсь. Существует так много поддержки ViewData, но я знаю ViewModel это гораздо более абстрактный и отдельный способ работы, как и при наборе текста. Я просто не хочу сокращать себя в сценариях, где мне нужно будет получать определенные данные, такие как ViewData, которые легко доступны из других объектов, таких как класс HtmlHelper.
Мысли? Стандарты? Опыт? Я немного отключен, или вы просто используете комбо и по-прежнему используете ViewData в других обстоятельствах, чем просто отправка данных из вашего контроллера в ваш View или как?
И если вы вообще не используете ViewData и вместо этого используете ViewModel со своими контроллерами, то похоже, что вы используете ViewModel "все или ничего", и поэтому ViewData не имеет никакой цели, поскольку вы не установили его с помощью чего-либо из ваши контроллеры так бесполезны на тот момент ?? Я кого-то путаю или далеко отсюда? Смути меня, черт возьми, это точно.