我是否认为在创建C#类SelectList之后无法设置所选值?
这不是很傻吗?
最佳答案
我认为您正在与框架进行斗争。进入 View 的数据应在“最后可能的分钟(LPM)”上创建。
以这种方式思考,SelectList
是用于提供DropDownList
HTML帮助器的类型。在决定如何处理数据时,它不是存储数据的地方。
更好的解决方案是将数据检索到List<T>
中,然后在需要时初始化SelectList
。这种做法的直接好处是,它允许您将List<T>
重用于多个DropDownList
,例如:
Country of birth
Country of residence
这些
SelectLists
都使用List<Country>
类型的国家列表。您可以在“最后一刻”使用
List<T>
,如下例所示:public class TaxCheatsFormViewModel
{
private List<Country> countries { 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<Country>();
CountryOfBirth = new SelectList(countries, baddie.COB);
CountryOfResidence = new SelectList(countries, baddie.COR);
CountryOfDomicile = new SelectList(countries, baddie.COD);
}
}
关键是您应该将数据保留在
List<T>
中,直到您真正需要将其输出为止。最后可能的分钟(LPM)。关于c# - 实例化后在SelectList中设置所选值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/301854/