2014-02-06 55 views
0

当我尝试验证输入我的文本框,它给了我这个错误:使用此功能来检查我的验证电子邮件验证是ASP.NET

[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; } 
      } 
     }  

我在想什么?

+0

可能重复http://stackoverflow.com/questions/12452109/ asp-net-2012-unobtrusive-validation-with-jquery) –

+1

看起来你收到的错误信息是告诉你如何修复它。 '请添加一个名为jquery(区分大小写)的ScriptResourceMapping。' –

+0

我知道,但是我在2天前开始使用C#和ASP.NET,所以如果我不知道那是什么,我不得不原谅我。 –

回答

0

我会在Web.Config或Global.asax中禁用“Unobtrusive Validation Mode”。

普罗蒂普:

你可以只用if (emailError.IsValid)代替if(emailError.IsValid == true)

-1

我知道这可能不是你想要采取这种方向,但我的建议是使用基于jQuery的验证。这些净validatiors是更多的麻烦比他们的价值恕我直言

喜欢的东西

$("#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> 
[ASP.Net 2012不显眼的验证与jQuery(的
+0

你不能这样做。你的客户可以轻易地(有意或无意)绕过它,现在你什么都不能阻止他。 – Casey

+0

很明显,这是针对客户端的。是的,我同意/ yourRegEx /也应该在服务器上 –