我在视图上有一个带有下拉列表的表单,使用 DropDownListFor() 实现。这个 View 是强类型的 ViewModel,它有一个 SelectList 属性来保存下拉列表的选项,然后是另一个属性来保存下拉列表的选定值。这工作正常,但我想做的是,在我的第二个属性中同时保存下拉列表的选定值和选定文本。我想这样做的原因是,作为自我发布的表单,我同时拥有每个选择的文本和值。
我尝试将选定的值属性从 int 更改为 KeyValuePair,但在表单提交时只设置了该对的 int 部分。
也许有更好的方法来实现这一点,我愿意接受所有建议,包括对我的方法进行部分重新设计。
控制器(构建 SelectList)
SelectList leadTypeGroups = new SelectList(_enrollmentRepository.GetLeadTypeGroups(), "Key", "Value");
视图模型
public KeyValuePair<int, string> LeadTypeGroupID { get; set; }
public SelectList LeadTypeGroups { get; set; }
看法
@Html.DropDownListFor(selected => Model.LeadTypeGroupID, Model.LeadTypeGroups, " ")