【问题标题】:Asp.Net CustomValidator is not generating equal functions in java scriptAsp.Net 自定义验证器未在 javascript 中生成相同的函数
【发布时间】:2013-07-19 11:37:30
【问题描述】:
我正在创建我的 Asp.Net 网站的注册页面。当我们使用服务器端 Asp.net 内置验证控件时,它们既可以在客户端工作(通过生成适当的 java 脚本代码),也可以提供服务器端保护。因此,如果有人绕过该 java 脚本,仍然必须在服务器上验证该页面。目前我在自定义验证器中使用我自己的 asp.net C# 函数来完成这项工作,但这些仅适用于服务器端。我的意思是,我的 Web 表单上不会自动生成相等的 java 脚本。这是 Asp.Net 的默认行为还是我遗漏了什么?当我使用 asp.net 自定义验证器时,我是否必须自己编写客户端 java 脚本?
我的第二个问题是我们何时为我们的 asp.net 自定义验证器编写函数。当页面提交到服务器时调用它们。我可以使用 java 脚本访问这样的功能,以便在页面提交到服务器之前开始工作。
【问题讨论】:
标签:
javascript
asp.net
c#-4.0
【解决方案1】:
对于自定义验证器,您必须使用 javascript 和 C# 编写自己的验证代码
如果您将一些 javascript 附加到验证器,它将与页面上的所有标准 .net 验证器一起触发,因此可以在回发之前捕获错误
您需要确保设置了 ClientValidationFunction 方法。
<asp:CustomValidator
id="ProgrammaticID"
ControlToValidate="programmatic ID of Server Control to Validate"
ClientValidationFunction="ClientValidateID"
OnServerValidate="ServerValidateID"
ErrorMessage="Message to display in ValidationSummary control"
Text="Message to display in control"
ForeColor="value"
BackColor="value"
runat="server" >
</asp:CustomValidator>