2010-08-09 169 views
1

我在我看来使用Html.EnableClientValidation方法启用客户端验证。这个客户端验证非常适合文本框,但我想我可能在使用dropdownbox时发现了一个错误。ASP.NET MVC2客户端验证错误?

如果您使用以下构造Html.DropDownList(name, data, "Please choose...")而没有任何具有该名称的ViewData项目,则客户端验证很有效。如果您查看生成的HTML代码,您将看到ASP.NET在JSON块中为它生成了ValidationRules。

但是,如果我添加具有该名称的ViewData项目,那么客户端验证的ValidationRules为空!

在这两种情况下,服务器端验证都按预期工作。错误还是有我缺少的东西?

回答

1

解决方法很简单:

<%= Html.DropDownList("Username", "Please choose...")%>

在这两种情况下,我使用相同的代码:如果你不喜欢这样

<%= Html.DropDownList("Username", CType(ViewData("Data"), SelectList), "Please choose...")%>

客户验证不起作用构建ViewData项目,但它只适用于第一个语句。