注意:以下只是一个示例。
我对 ASP.NET MVC 还很陌生,我正试图弄清楚下拉列表的验证是如何工作的。我的ProfileViewModel
班级有以下财产:
[DisplayName("Gender")]
public bool? Gender { get; set; }
null
意思是“未知”,true
女性和false
男性。在视图模型构造函数中我
AllGenders = new List<SelectListItem>(2)
{
new SelectListItem {Text = "Unknown", Value = "null"},
new SelectListItem {Text = "Male", Value = "false"},
new SelectListItem {Text = "Female", Value = "true"}
};
首先,似乎我在填充 a 时必须使用字符串List<SelectListItem>
,这感觉有点奇怪。真的是这样吗?
其次,当我在列表中选择“未知”时,验证失败告诉我:
值“null”对 Gender 无效。
这是为什么?当我删除“null”选项并更改Gender
为 simplebool
时,一切似乎都很好。
这是 ASPX:
<%= Html.DropDownList("Gender", Model.AllGenders) %>
(我无法DropDownListFor
正常工作,似乎很多其他人也有同样的问题。)
任何帮助表示赞赏!