我建议避免使用 ViewData 或 ViewBag 来支持ViewModel。
ViewModel本质上是一个混合模型,它将 View 需要的所有数据聚合到一个实体中。而不是将视图输入到模型并传递视图所需的附加信息,这些信息不在 ViewData 或 ViewBag 中的模型中,而是在模型中输入视图所需的一切。
在您的情况下,ViewModel 可能看起来像这样:
public class MyViewModel
{
public DropDown1 DropDownA { get; set; }
public DropDown2 DropDownB { get; set; }
public Model ModelData { get; set; }
}
public class DropDown1
{
public int SelectedValue { get; set; }
public List<T> DropDownValues { get; set; }
}
public class DropDown2
{
public int SelectedValue { get; set; }
public List<T> DropDownValues { get; set; }
}
您的视图将通过键入到MyViewModel
. 此时,将下拉菜单的数据源设置为 ViewModel 中的下拉菜单并设置 SelectedValue 将是微不足道的。