我是一个带有文本框和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。但我无法与那里给出的内容和我遇到的错误有任何关系
但此链接不再存在。
当我在将目标版本更改为4.0后查看网页的来源时,我发现了一些额外的内联javascripts(我猜这被称为突兀的javascripts)。使用内联代码有什么问题?
我对ASP.net很陌生,所以很少有人喜欢。