我在应用程序中有典型的 YesNo 下拉菜单。为此,我为 future 的扩展目的开发了模型(而不是 ViewModel 实用程序)类。
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 });
}
然后,我将其绑定(bind)在如下 View 中:
@Html.DropDownListFor(x => x.SelectedValue, new SelectList(Model.DropDowns, "Value", "Text",1),"Select") //last para - OptionLabel
在 View 上,所有三个参数都得到显示,即“选择”、"is"和“否”。但是,默认情况下已选择“否”。如果我将“Value”属性设为整数,那么它可以正常工作,默认情况下会选择“Select”,但如代码中所述,如果我倾向于使用 bool 类型,则选择“No”。
当 DataValueField 为 bool 时如何获得正常行为?
最佳答案
查看型号
public bool flag { get; set; }
查看
@Html.DropDownListFor(model => model.flag, new List<SelectListItem>()
{
new SelectListItem() { Text = "Yes", Value = "True" },
new SelectListItem() { Text = "No", Value = "False"}
}, "Select.....", new { @id = "flag", @class="form-control" })
@Html.ValidationMessageFor(model => model.flag)
关于asp.net-mvc - DropDownListFor(...) 默认选择 boolean false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676994/