【问题标题】:ASP.NET validation issue - DropDownList being populated dynamically on clientASP.NET 验证问题 - DropDownList 在客户端动态填充
【发布时间】:2010-04-28 17:29:23
【问题描述】:
我在客户端使用 JS 填充 DropDownList 并使用 RequiredFieldValidator 进行验证。
这在客户端上运行良好,但 Page.IsValid 在服务器上始终返回 false。
这是因为所选值在第一次提供给页面时不在 DropDownList 中吗?
解决这个问题的最简单方法是什么? (我需要打开服务器验证)
【问题讨论】:
标签:
asp.net
validation
drop-down-menu
【解决方案1】:
这是因为选择的值
不在 DropDownList 中
首次投放到页面?
是的。您可能会注意到,当您进行回发时,您的下拉列表将不包含任何项目,是的,这是因为您在客户端添加项目。您添加到客户端控件的任何项目对于服务器来说都是完全未知的。因此,您的服务器验证将始终失败,因为该字段是必需的。
事实上,使用客户端脚本动态添加项目会触发 EventValidation 抱怨可能存在安全问题,您必须在 <%@ Page %> 指令中将 EnableEventValidation 设置为 false 才能发帖。
解决这个问题的最好方法是
在服务器端生成您的项目,或
为此不使用服务器控件(使用常规的非 asp.net 选择列表)并通过查看发布的值在服务器上手动验证它。