質問: お世話になります。 *イタリックテキスト* Visual Studio 2017を使って、asp.net Webプログラムを開発しようとしています。 20年程前に、aspでプログラムを作ったことがあります。Accessデータベースを、Webプログラムで読み書き更新するプログラムでした。 その際に作ったプログラムを、今回asp.netで更新しようとしています。 こんなエラーが出て、Visual Studio 2017の修正に迷っています。 エラーは、 **InvalidOperationException: WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery (大文字と小文字が区別されます) という名前の ScriptResourceMapping を追加してください。** というものです。 このエラーで、検索したところ、最新版のバージョン1.9.1をダウンロードして下さいとありました。 jqueryをインストールしようとして、http://jquery.com/にアクセスしましたが、**そこにはバージョン1.9.1がなく、 Download jQuery v3.3.1が**ありました。 現在、Visual Studio 2017のScriptsには、jQuery v3.3.1が入っています。 検索した情報は、最終更新日が 2017-12-24となっておりましたが、この検索結果の回答では解決しないような気がしています。 迷っていますので、ご指導戴きたく、宜しくお願い致します。 もう一点ですが、jQuery v3.3.1をインストールするとして、3種類ほどあるようです。 Download the compressed, production jQuery 3.3.1 Download the uncompressed, development jQuery 3.3.1 Download the map file for jQuery 3.3.1 の3種類です。どれをインストールすれば良いのでしょか。 以上2点のご指導宜しくお願い致します。 ### 前提・実現したいこと asp.net Webプログラムを開発しています。 ここに質問の内容を詳しく書いてください。 (例)PHP(CakePHP)で Visual Studio 2017のScriptsには、jQuery v3.3.1がインストールされています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 デバッグするとエラーが出ます。 ### 発生している問題・エラーメッセージ InvalidOperationException: WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery (大文字と小文字が区別されます) という名前の ScriptResourceMapping を追加してください。 ``` エラーメッセージ ``` ### 該当のソースコード Language="C#" ソースコード ID・パスワード共に、半角・10桁以内の英数字 ID・パスワードとも、 先に登録設定されているものをご利用下さい。 ### 試したこと を削除するとデバックできる。 ここに問題に対して試したことを記載してください。 まだ対応していない。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: エラーメッセージは、「控えめな JavaScript」を使っての検証(ASP.NET 4.5 以降のデフォルト)に使用する jQuery.js が無いから、それがダウンロードされるようにスクリプトマッピングを追加しろと言ってます。 ASP.NET 4.5 以降の ASP.NET Web Forms アプリでは、クライアントスクリプトを利用するサーバーコントロールが正しく機能するために必要な .js ファイルがダウンロードされるようにいろいろ設定が必要です。 Visual Studio で Web Forms アプリのテンプレートを利用してプロジェクトの骨組みを自動生成させていると思いますが、そのテンプレートが[Web フォーム]か[空]かによって設定が異なります: **(1) [Web フォーム]の場合** 今回の問題の jQuery.js を含めて必要なスクリプトマッピングは設定済みとなり、必要な設定がされた ScriptManager がマスターページに配置されるので、マスターページを利用すれば OK です。 詳しくは以下の記事を見てください。 ASP.NET 4.5 ScriptManager マスターページを使用しない場合は、マスターページにある ~ の間のコードを含めた ScriptManager 全部をコピーして使ってください。 **(2) [空]の場合** 以下の記事を参考に、自力でスクリプトマッピングを行って、必要な設定がされた ScriptManager をページに配置して使ってください。 ASP.NET 4.5 スクリプト マッピング その際の jQuery のバージョンですが、上の記事にありますように 3.3.1 で、自分が試した限りですが、問題なく動いています。ただし、100% 問題ないかは保証の限りではありませんのでご自分で十分検証してください。 **注:ネットの記事で、web.config の appSettings の設定のよって「控えめな JavaScript」による検証を止めて旧来のものに戻すとか、クライアント側での検証を無効にするという解決策を目にしますが、それは決して好ましい解決法ではありません。**