C# 电子邮件验证是ASP.NET

C# 电子邮件验证是ASP.NET,c#,asp.net,validation,C#,Asp.net,Validation,当我尝试验证文本框中的输入时,会出现以下错误: [InvalidOperationException: WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).] System.Web.UI.ClientScriptManager.EnsureJqueryRegi

当我尝试验证文本框中的输入时,会出现以下错误:

[InvalidOperationException: WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).]
System.Web.UI.ClientScriptManager.EnsureJqueryRegistered() +2179162
System.Web.UI.WebControls.BaseValidator.RegisterUnobtrusiveScript() +10
System.Web.UI.WebControls.BaseValidator.OnPreRender(EventArgs e) +9708897
System.Web.UI.Control.PreRenderRecursiveInternal() +83
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Control.PreRenderRecursiveInternal() +155
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974
我用这个来检查我的验证:

        <asp:RegularExpressionValidator ID="emailError" 
         runat="server" ControlToValidate="email" 
         ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
         ErrorMessage="Please enter a valid E-mail"></asp:RegularExpressionValidator>

当按下我的登录按钮时,我调用此方法:

if (emailError.IsValid == true)
        {
            String user = email.Text;
            String pass = password.Text;
            string[] lines = System.IO.File.ReadAllLines("C:\\Users\\MaxNie\\Documents\\Visual Studio 2013\\Projects\\WebApplication1\\WebApplication1\\TextFiles\\TextFile1.txt");
            for (int i = 0; i < lines.Length; i++)
            {
                String[] line = lines[i].Split(',');
                if (user.Equals(line[0]) && pass.Equals(line[1]))
                {
                    Response.Redirect("~/Locations.aspx");
                }
                else { errorLabel.Visible = true; }
            }
        }     
if(emailError.IsValid==true)
{
字符串user=email.Text;
字符串pass=password.Text;
string[]lines=System.IO.File.ReadAllLines(“C:\\Users\\MaxNie\\Documents\\Visual Studio 2013\\Projects\\WebApplication1\\WebApplication1\\TextFiles\\TextFile1.txt”);
对于(int i=0;i

我遗漏了什么?

禁用无干扰验证模式的方法是使用以下行:

<appSettings>
    ...
    ...

 <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

我将考虑在Web.Config或Global.asax中禁用“不引人注目的验证模式”

Protip:


您可以使用
if(emailError.IsValid)
而不是
if(emailError.IsValid==true)

我知道这可能不是您想要的方向,但我的建议是使用基于jQuery的验证器。这些.Net验证程序的麻烦比它们的价值还多

差不多

$("#email").on("blur", validateEmail);
function() {
    if(/yourRegEx/.test(this.value)) {
       $(this).next().show();
       this.IsValid = false;
    } else {
       $(this).next().hide();
       this.IsValid = true;
    }
}
function formOnSubmit() { //<-- you need to wire this up
    for(var i in this.getElementsByTagName("input")) {
       if(! i.IsValid) e.preventDefault
    }
}
<input id=email /><div style="display:none">Invalid email</div>
$(“#email”)。在(“blur”,validateEmail)上;
函数(){
if(/yourRegEx/.test(this.value)){
$(this.next().show();
this.IsValid=false;
}否则{
$(this.next().hide();
this.IsValid=true;
}
}

函数formOnSubmit(){//的可能重复项看起来像是您收到的错误消息正在确切地告诉您如何修复它。
请添加名为jquery的ScriptResourceMapping(区分大小写).
我知道,但我两天前开始使用C#和ASP.NET,所以如果我不知道这是什么,我必须原谅。你不能这么做。你的客户可以轻松(有意或无意)绕过它,现在你没有什么可以阻止他。显然,这解决了客户端问题。是的,我同意/yourRegEx/也应该在服务器上