C# 是否可以对asp.net控件进行仅客户端验证?
首先,我知道我可以使用Javascript,但让我解释一下 我的目标是能够使用任何验证器:C# 是否可以对asp.net控件进行仅客户端验证?,c#,asp.net,vb.net,validation,C#,Asp.net,Vb.net,Validation,首先,我知道我可以使用Javascript,但让我解释一下 我的目标是能够使用任何验证器: 必需的 正则表达式 比较 等等 并且只从客户端验证中受益。我正在对继承的控件进行子分类,并防止将name属性呈现给客户端。原因是我不想将敏感数据返回到服务器。删除name属性会阻止值随控件一起发送 以必填字段为例,它在服务器上的验证总是失败,因为没有发送值。我可以使用自定义验证器,但希望利用所有验证类型的所有预构建功能 希望有人有一个创造性的想法,或者如果我对显而易见的东西视而不见,或者如果这完全是不
- 必需的
- 正则表达式
- 比较
- 等等
希望有人有一个创造性的想法,或者如果我对显而易见的东西视而不见,或者如果这完全是不可能的。你可以尝试使用ASP.Net Ajax控件工具包,它是一个用于web开发的开源库 如果您想使用标准Asp.Net控件,您可以使用验证控制器,其中有compare、custom、range、regex和required field validator
关于在页面的覆盖的
验证
功能中重置验证器的IsValid
属性似乎有效:
public override void Validate()
{
base.Validate();
rfvNotEmpty.IsValid = true;
}
若我正确理解了您的问题,您希望服务器端验证控件在客户端工作,那个么您需要在页面上添加最新jquery文件的引用,如示例所示 服务器端控件将在客户端进行验证,并且表单将在验证客户端之前不会发布到服务器端
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="ValidationTest.aspx.vb" Inherits=".ValidationTest" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:Panel runat="server">
<asp:TextBox runat="server" ID="txtName" CssClass="form-control" />
<asp:RequiredFieldValidator
ID="rvtxtName"
InitialValue=""
runat="server"
ControlToValidate="txtName"
ForeColor="Red"
ErrorMessage="*Field Required!"
Display="Dynamic"
ValidationGroup="add">
</asp:RequiredFieldValidator>
<asp:Button runat="server" ID="btnSubmit" Text="Save" ValidationGroup="add" />
</asp:Panel>
</form>
</body>
我知道这个问题很简单,但如果有人需要,我有一个简单的解决方案
您只需将客户端验证程序创建为Enabled=“false”,并在启用它的PreRender事件中,服务器端验证显示在PreRender之前,因此它将被忽略,因为它已禁用,但prerender将生成客户端代码,验证程序将启用并工作。恐怕您误解了这个问题。注意:我不知道为什么我的答案是唯一一个没有被否决的答案(尚未),但我不是否决其他答案的人。:-)哈哈,我听到了。我正在看你的答案。有人也击沉了我的战舰,我不知道为什么。谢谢你解除了我的战舰,如果是你的话。:)是的,是我(向上投票以取消其他人的向下投票)。我认为你的想法很好,但我还没有试过看它是否有不好的一面。