1

我使用我认为的方法启用客户端验证Html.EnableClientValidation。这种客户端验证非常适合文本框,但我想我可能在与下拉框一起使用时发现了一个错误。

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

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

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

4

1 回答 1

1

解决方案很简单:

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

如果您这样做,客户端验证将不起作用:

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

在这两种情况下,我都使用相同的代码来构造 ViewData 项,但它仅适用于第一条语句。

于 2010-08-10T10:27:05.697 回答