ものぐさ日記(仮)

特にテーマはありません。仕事のこと、趣味のこと、思いついたこと、だらだら綴っていきます。

【ASP.NET】空の Web アプリケーションに「CompareValidator」を配置するとサーバーエラーが発生

 学習の為、空の 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>


※太字が追加個所