我在视图中使用Html.EnableClientValidation
方法启用客户端验证。这种客户端验证非常适用于文本框,但我认为与dropdownbox一起使用时可能会发现一个错误。
如果您使用以下构造Html.DropDownList( name, data, "Please choose..." )
而没有任何具有该名称的ViewData项,那么客户端验证效果很好。如果查看生成的HTML代码,您将看到ASP.NET在JSON块中为它生成了ValidationRules。
但是,如果我添加一个具有该名称的ViewData项,那么客户端验证的ValidationRules为空!
在这两种情况下,服务器端验证都按预期工作。 Bug还是有什么我想念的?
答案 0 :(得分:1)
解决方案很简单:
<%= Html.DropDownList("Username", CType(ViewData("Data"), SelectList), "Please choose...")%>
如果你这样做,客户端验证不起作用:
<%= Html.DropDownList("Username", "Please choose...")%>
在这两种情况下,我使用相同的代码来构造ViewData项,但它只适用于第一个语句。