I was wondering what the best practice is when populating commonly used dropdownlists in ASP.NET MVC. For instance, I have a Country and State select which is used often in
I'm a big fan of creating view models that match (model) each view exactly. So if you have a view with a States dropdown list, my view model for that page would have a States collection of ListItems.
I wouldn't worry about having view models with a states collection on it. Instead I'd centralize the logic to get the states, something like:
viewModel.States = StatesHelper.GetStates(); // returns IList