2014-02-06 4 views
0

Когда я пытаюсь проверить ввод в моем TextBox, и это дает мне эту ошибку:проверки электронной почты 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 

Im, используя это, чтобы проверить мои проверки:

 <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

возможно дубликат [ASP.Net 2012 ненавязчивым Validation с JQuery] (http://stackoverflow.com/questions/12452109/ asp-net-2012-unobtrusive-validation-with-jquery) –

+1

Похоже, что сообщение об ошибке, которое вы получаете, сообщает вам, как его исправить. 'Пожалуйста, добавьте ScriptResourceMapping с именем jquery (с учетом регистра). –

+0

Мне известно, но я начал с C# и ASP.NET 2 дня назад, поэтому ull извините меня, если я не знаю, что это такое. –

ответ

1

, как вы можете отключить режим Unobstrusive проверки является с линией:

<appSettings> 
    ... 
    ... 

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

Так измените конфигурационный файл. Если это не поможет, перейдите по этой ссылке http://www.codeproject.com/Articles/465613/WebForms-UnobtrusiveValidationMode-requires-a

0

Я бы посмотрел на отключение «ненавязчивого режима проверки» в Web.Config или Global.asax.

Protip:

Вы можете просто использовать if (emailError.IsValid) вместо if(emailError.IsValid == true)

-1

Я знаю, что это не может быть направление вы хотите, чтобы принять это, но мое предложение было бы использовать валидатор на основе JQuery. Эти .Net 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> 
+0

Вы не можете просто сделать это. Ваш клиент мог легко (намеренно или нет) обойти его, и теперь у вас нет ничего, что остановило бы его. – Casey

+0

Очевидно, что это обращается к стороне клиента. Да, я согласен, что/yourRegEx/также должен быть на сервере –

Смежные вопросы