InvalidOperationException:C#中的WebForms UnobtrusiveValidationMode

时间:2016-08-09 01:39:54

标签: javascript c# asp.net unobtrusive-validation server-error

我是一个带有文本框和RequiredFieldValidator Control的网络表单。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <title></title>
</head>
<body>
 <form id="form1" runat="server">
  <div>
   Name : <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
   <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate ="TextBox1" ErrorMessage="RequiredFieldValidator">       
   </asp:RequiredFieldValidator>
   <asp:button runat="server" text="Button" />
  </div>
 </form>
</body>
</html>

当我加载页面并单击按钮时,出现错误

错误:

[InvalidOperationException: WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).]
System.Web.UI.ClientScriptManager.EnsureJqueryRegistered() +145
System.Web.UI.WebControls.BaseValidator.RegisterUnobtrusiveScript() +11
System.Web.UI.WebControls.BaseValidator.OnPreRender(EventArgs e) +88
System.Web.UI.Control.PreRenderRecursiveInternal() +166
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Control.PreRenderRecursiveInternal() +236
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4682

我做了一些谷歌搜索并找到了一些解决方案,比如在web.config中将目标版本更改为4.0,使用global.asax文件中的jquery并将UnobtrusiveValidationMode的属性更改为none。

我甚至在https://en.wikipedia.org/wiki/Unobtrusive_JavaScript读到了不引人注目的javascript。但我无法与那里给出的内容和我遇到的错误有任何关系

大部分答案都说http://connect.microsoft.com/VisualStudio/feedback/details/735928/in-asp-net-web-application-visual-basic-the-requiredfieldvalidator-doest-work

但此链接不再存在。

当我在将目标版本更改为4.0后查看网页的来源时,我发现了一些额外的内联javascripts(我猜这被称为突兀的javascripts)。使用内联代码有什么问题?

我对ASP.net很陌生,所以很少有人喜欢。

0 个答案:

没有答案