我在客户端使用JS填充DropDownList并使用RequiredFieldValidator进行验证。
这在客户端上工作正常,但Page.IsValid在服务器上一直返回false。
这是因为当首次向页面提供时,所选值不在DropDownList中吗?
最简单的方法是什么? (我需要打开服务器验证)
答案 0 :(得分:3)
这是因为所选的值 它不在DropDownList中 首先送到页面?
是。您可能会注意到,当您进行回发时,您的下拉列表将不包含任何项目,是的,这是因为您在客户端添加了项目。您添加到客户端上的控件的任何项目都是服务器完全不知道的。因此,您的服务器验证将始终失败,因为该字段是必需的。
事实上,使用客户端脚本动态添加项目会触发EventValidation来抱怨可能存在安全问题,并且您必须在EnableEventValidation
中将false
设置为<%@ Page %>
}指令能够发布。
解决这个问题的最佳方法是
在服务器端生成您的项目,或
不使用服务器控件(使用常规的nonasp.net选择列表)并通过查看发布的值在服务器上手动验证它。