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