学習の為、空の Web アプリケーションからサンプルコードを作成していたら遭遇した。
「WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery (大文字と小文字が区別されます) という名前の ScriptResourceMapping を追加してください。 」というような内容。対応方法は、
対応方法は、Microsoft Connect に記載があったが、Global.asax の開始時のイベントに下記のような文を追加する。
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition
{
Path = "~/scripts/jquery-1.7.1.min.js",
DebugPath = "~/scripts/jquery-1.7.1.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.js"
});
これだけだと、環境がきちんと作られていない為か、検証コントロールが反応しないので、Unobtrusive Validation を停止する為に Web.Config を下記のように変更した。
<configuration>
<system.web>
<compilationdebug="true"targetFramework="4.5" />
<httpRuntimetargetFramework="4.5" />
</system.web>
<location path="HogeHoge.aspx">
<system.web>
<httpRuntimerequestValidationMode="2.0" />
</system.web>
</location>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
</appSettings>
</configuration>
※太字が追加個所