I try to use ViewData as little as possible, since you always need to set values, you need to perform error checking for zeros or for keys that do not exist, and in my opinion, they are cluttering the eyes.
I try to use viewmodels as often as possible, since I find strongly typing the model view as a cleaner approach.
I would put as much data as possible in the viewmodel, but only what makes sense. For data that should not be related to the viewmodel, I would go as ViewData, but try to minimize it.
As far as you doubt the input fields, if they are all connected to each other, I would do a ViewModel for this instead of transferring 5 or 10 pieces of data to ViewData, since logical grouping them in one place would make sense. It really is a matter of preference, but I found this approach the best for me.
source share