ASP.NET 验证问题 - DropDownList 在客户端上动态填充

标签 asp.net validation drop-down-menu

我在客户端上使用 JS 填充 DropDownList 并使用RequiredFieldValidator 进行验证。

这在客户端上工作正常,但 Page.IsValid 在服务器上始终返回 false。

这是因为所选值首次提供给页面时不在 DropDownList 中吗?

解决这个问题最简单的方法是什么? (我需要打开服务器验证)

最佳答案

Is this because the selected value wasn't in the DropDownList when it was first served to the page?

是的。您可能会注意到,当您进行回发时,您的下拉列表将不包含任何项目,是的,这是因为您在客户端添加项目。服务器完全不知道您添加到客户端控件的任何项目。因此,您的服务器验证将始终失败,因为该字段是必需的。

事实上,使用客户端脚本动态添加项目将触发 EventValidation 来提示可能存在安全问题,并且您必须设置 EnableEventValidationfalse在你的<%@ Page %>指令才能发布。

解决这个问题的最佳方法是

  1. 在服务器端生成您的项目,或者

  2. 不使用服务器控件(使用常规的非 asp.net 选择列表)并通过查看发布的值在服务器上手动验证它。

关于ASP.NET 验证问题 - DropDownList 在客户端上动态填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731773/

相关文章:

asp.net - 如何从 JavaScript 触发 ASP.NET 自定义验证器?

c# - 对绑定(bind)到 Linq 查询的 GridView 进行排序

javascript - Jquery 日期规则在 Firefox 和 IE 中不起作用

java - 多输入验证整合 Java

javascript - 经典 asp - 由 vbscript 下拉列表填充的 javascript 数组

javascript - Asp.net autocompleteextender 选择光标点问题

c# - 在 C# 中动态更改数据类型

validation - Laravel 条件唯一验证

css - 在 Volusion 左侧导航菜单中更改字体

javascript - 使用媒体查询和 JavaScript 构建 HTML5 响应式菜单