我有典型的是没有在应用程序中的下拉类型。为此,我为未来的扩展prupose开发了模型(而不是ViewModel Utility)。DropDownListFor(...)默认情况下选择布尔值false
public string Text { get; set; } // represents text part
public bool Value { get; set; } // represent value
public List<DropDown> DropDowns { get; set; } //list for binding
public void BuildYesNoDropDown()
{
DropDowns = new List<DropDown>();
DropDowns.Add(new DropDown { Text = "Yes", Value = true });
DropDowns.Add(new DropDown { Text = "No", Value = false });
}
然后,我将它绑定在视图像以下:
@Html.DropDownListFor(x => x.SelectedValue, new SelectList(Model.DropDowns, "Value", "Text",1),"Select") //last para - OptionLabel
在视图,所有三个参数都得到的显示,即“选择”,“是”和“否”。但是,默认情况下选择了“否”。如果我将“Value”属性设置为整数,那么它可以正常工作,默认情况下选择“Select”,但如代码中所述,如果我倾向于使用bool类型,则选择“No”。
如何在DataValueField为bool时获得正常行为?
感谢您的答复。但是,我想我的问题被误解了。目前,默认情况下使用bool值选择“NO”。相反,我希望选择OptionLabel的“Select”。 – StartingFromScratch
我会让其他人回答这个问题 - 你需要为他们提供'DropDown'模型。 – Cymen
没有足够的声望来回传代码...... :(我猜,问题是使用lambda表达式类型。在上面的代码中,x => x.SelectedValue的类型是bool。这会强制引擎选择最后的“false “提供的集合中的值,我不确定! – StartingFromScratch