Я стараюсь использовать ViewData как можно меньше, так как вам всегда нужно приводить значения, вам нужно проверять ошибки на наличие нулей или ключей, которые не существуют, и это, на мой взгляд, загромождает представления.
Я стараюсь использовать видовые модели всякий раз, когда это возможно, поскольку я считаю, что строгий тип представления модели является более чистым подходом.
Я бы поместил как можно больше данных в модель представления, но только в том, что имеет смысл.Для данных, которые не должны входить в модель представления, я бы передавал их как ViewData, но старался бы свести их к минимуму.
Насколько вы сомневаетесь, поля ввода, если они все связаны,для этого создаст ViewModel вместо того, чтобы передавать 5 или 10 фрагментов данных в ViewData, поскольку логическая группировка их в одном месте будет иметь смысл.Это действительно вопрос предпочтений, но я считаю, что этот подход является лучшим для меня.