[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。

[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。

環境

ASP.NET 4.5

VS 2012

使用空的Web專案

 

問題

今天在測試WebForm的必填項目驗証時,如下的aspx,

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

 

結果一執行就出現以下的錯誤訊息,

WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。

 

解法1

那是因為Web Form使用UnobtrusiveValidationMode來驗証,所以可以設定不要使用UnobtrusiveValidationMode,如下,在Page_Load中設定,如下,

protected void Page_Load(object sender, EventArgs e)
{
	UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}

 

經過上面設定好之後,驗証就會依ASP.NET 4.5之前的方式,建立驗証的物件來驗証,如下圖,

image

 

解法2

那如果要使用UnobtrusiveValidationMode呢?

我們就可以在Global.asax.cs的Application_Start事件中,設定ScriptResourceMapping,如下(因為我專案中的jQuery是2.0.0),

protected void Application_Start(object sender, EventArgs e)
{
	ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
		new ScriptResourceDefinition
			{
				Path = "~/Scripts/jquery-2.0.0.js"
			});
}

 

原先在Page_Load設定不使用UnobtrusiveValidationMode,請記得刪除哦!

如果專案中沒有jQuery的話,可以透過NuGet安裝。

經過上面設定好之後,驗証就會走UnobtrusiveValidationMode,所以就會有很多 data-val- 的屬性,如下圖,

image

 

其他解法

http://www.dotblogs.com.tw/mis2000lab/archive/2012/07/03/webforms_unobtrusivevalidationmode_jquery.aspx

 

參考資料

Enabling unobtrusive validation from scratch in ASP.Net 4.5 webforms

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^