我是否认为在创建C#类SelectList后无法设置所选值?这不是有点傻吗?
我认为你正在与框架作斗争.进入视图的数据应在最后可能的分钟(LPM)中创建.
以这种方式思考,a SelectList
是一种提供DropDownList
HTML帮助程序的类型.在您决定如何处理数据时,它不是存储数据的地方.
更好的解决方案是将数据检索到a中List
,然后SelectList
在需要时初始化(s).这种做法的直接好处是它允许您重复使用List
多个DropDownList
,例如:
Country of birth Country of residence
这些SelectLists
都使用了国家类型列表List
.
您可以List
在此示例中使用"最后一分钟":
public class TaxCheatsFormViewModel { private Listcountries { get; set; } public TaxCheat Cheat { get; private set; } public SelectList CountryOfBirth { get; private set; } public SelectList CountryOfResidence { get; private set; } public SelectList CountryOfDomicile { get; private set; } public TaxCheatsFormViewModel(TaxCheat baddie) { TaxCheat = baddie; countries = TaxCheatRepository.GetList (); CountryOfBirth = new SelectList(countries, baddie.COB); CountryOfResidence = new SelectList(countries, baddie.COR); CountryOfDomicile = new SelectList(countries, baddie.COD); } }
关键在于你应该将数据保存在List
真正需要输出的状态; 最后一分钟(LPM).