我有一个viewcodel,为视图定义了多个SelectLists,我正在尝试为常用的东西创建共享的SelectLists,比如状态列表 . 当填充viewmodel中的SelectList时,我可以看到正确设置了SelectedItem,但它没有在视图中填充 .

在viewmodel中:

[Display(Name = "State")]
public int StateID { get; set; }

public SelectList States { get; set; }

在控制器中:

staff.States = StatesMenu(db.TenantRepos.StateID); //setting default value

的SelectList:

public static SelectList StatesMenu(int? selected)
    {
        SelectList _states = new SelectList(db.States.OrderBy(o => o.Code).Select(x => new StateMenuVM { ID = x.ID, Code = x.Code }), "ID", "Code", selected);
        return _states;
    }

视图:

@Html.DropDownListFor(m => m.StateID, Model.States)

因此,当我运行视图时,选择列表没有选定的项目 . 如果我手动执行此操作,则所选项目显然有效:

staff.StateID = db.TenantRepos.StateID;

我很困惑为什么没有使用已选择的项创建SelectList,因为我在新的SelectList中设置了该值,并且它正确地传递给staff.States .

在此先感谢您的帮助 .