ASP.NET MVC:DropDownList验证

时间:2010-09-02 14:25:22

标签: asp.net asp.net-mvc asp.net-mvc-2 asp.net-mvc-2-validation

注意:以下只是一个例子。

我是ASP.NET MVC的新手,我正试图了解下拉列表的验证是如何工作的。我在ProfileViewModel课程中有以下属性:

[DisplayName("Gender")]
public bool? Gender { get; set; }

null的意思是“未知”,true女性和false男性。在视图模型构造函数I

AllGenders = new List<SelectListItem>(2)
             {
                 new SelectListItem {Text = "Unknown", Value = "null"},
                 new SelectListItem {Text = "Male", Value = "false"},
                 new SelectListItem {Text = "Female", Value = "true"}
             };

首先,似乎在填充List<SelectListItem>时我必须使用字符串,这感觉有点奇怪。这真的是怎么做的?

其次,当我在列表中选择“未知”时,验证无法告诉我:

值'null'对Gender不起作用。

为什么?当我删除“null”选项并将Gender更改为简单的bool时,一切似乎都很好。

这是ASPX:

<%= Html.DropDownList("Gender", Model.AllGenders) %>

(我无法让DropDownListFor正常工作,似乎很多其他人也有同样的问题。)

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:4)

new SelectListItem {Text = "Unknown", Value = "null"},

应该是:

new SelectListItem {Text = "Unknown", Value = ""},

发布“”将导致null绑定。