ASP.NETのプロジェクト作成時に「空」のテンプレートを選択した場合、検証コントロールを利用するとエラーが発生しました。
WebForms UnobtrusiveValidationMode には、’jquery’ の ScriptResourceMapping が必要です。jquery (大文字と小文字が区別されます) という名前の ScriptResourceMapping を追加してください。
原因は「空」のテンプレートではjQueryが組み込まれずエラーが発生していましいた。検証コントロールを利用するにはjQueryをインストールして検証コントロールが認識できるように登録する必要があります。
ここではjQueryをインストールして検証コントロールが認識できる方法について紹介します。
jQueryをインストールする
- jQueryをプロジェクトにインストールするには、メニューバーの [ツール] → [NuGet パッケージ マネージャー] → [パッケージ マネージャー コンソール] を選択します。
- 「パッケージ マネージャー コンソール」ウィンドウが起動しますので、「PM>」に続けて「Install-Package jquery」と入力します。
- jQueryをインストールが実行されます。
- 「ソリューション エクスプローラー」を確認すると「Scripts」フォルダが追加され jQuery のパッケージが組み込まれています。
検証コントロールが認識できるようにする
検証コントロールがjQueryを認識できるようにするには、Global.asaxにjQueryの保存場所を登録する必要があります。
Global.asax を開いて以下のコード追加します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI;
namespace Custom
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", null, new ScriptResourceDefinition()
{
Path = "~/Scripts/jquery-3.6.0.min.js",
DebugPath = "~/Scripts/jquery-3.6.0.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-3.6.0.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-3.6.0.js"
}
);
}
}
}
ここでは「jquery-3.6.0」としていますが「3.6.0」の部分はインストールしたバージョンによって置き換えてください。
実行して確認すると検証コントロールが動作するようになりました。
以上、 ASP.NETでjQueryをインストールして検証コントロールが認識できるように登録する方法について解説しました。