2016-05-14 27 views
11

ためScriptResourceMappingを必要とし、私は次のエラーを取得する:WebフォームUnobtrusiveValidationModeは私のWebアプリケーションでjQueryの

WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).

どのように私はそれを解決することができますか?

+1

可能な複製(http://stackoverflow.com/question/12452109/asp-net-2012-un-jurery-with-jquery) – mihkov

+0

[WebForms UnobtrusiveValidationModeの重複の可能性は、 'jquery'のScriptResourceMappingが必要です。 jquery(大文字と小文字を区別する)という名前のScriptResourceMappingを追加してください。(https://stackoverflow.com/questions/16660900/webforms-unobtrusivevalidationmode-requires-a-scriptresourcemapping-for-jquery) –

答えて

35

.NET 4.5以降では、Validatorはデータ属性とバインドされたJavascriptを使用して検証作業を行うため、.NETではjQueryのスクリプト参照を追加することを想定しています。

エラーを解決するには2つの方法があります。


無効にUnobtrusiveValidationMode

は、web.configファイルにこれを追加します。

<configuration> 
    <appSettings> 
     <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> 
    </appSettings> 
</configuration> 

それが働いたとしてそれが動作します以前の.NETバージョンでは、あなたのページに必要なJavascriptを追加するだけで、 jQueryファイル内のコードこれは実際には一般的な解決策です。


別の解決策は、スクリプトを登録することです:Global.asaxのApplication_Start

あなたのjQueryのファイルパスへのマッピングを追加します。

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 
    ScriptManager.ScriptResourceMapping.AddDefinition("jquery", 
    new ScriptResourceDefinition 
    { 
     Path = "~/scripts/jquery-1.7.2.min.js", 
     DebugPath = "~/scripts/jquery-1.7.2.min.js", 
     CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js", 
     CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.js" 
    }); 
} 

をMSDNからのいくつかの詳細:

ValidationSettings:UnobtrusiveValidationMode Specifies how ASP.NET globally enables the built-in validator controls to use unobtrusive JavaScript for client-side validation logic.

If this key value is set to "None" [default], the ASP.NET application will use the pre-4.5 behavior (JavaScript inline in the pages) for client-side validation logic.

If this key value is set to "WebForms", ASP.NET uses HTML5 data-attributes and late bound JavaScript from an added script reference for client-side validation logic.

+1

ありがとうございました。 –

+0

ありがとう天才 –

+1

トップソリューションはこの問題を私のために修正しました.Net 4.5.2 – Callat

0

これは、このタイプのエラーのための最良の解決策だと思います。 以下の行を追加してください。 私は、特定のページに、この問題を解決するにはMSVS 2015

<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
</configuration>

3

を使用していたときにも、それは私のコードを作業は、ときにページの読み込みいくつかの検証設定を設定する必要があります。 Page_Load()方法に以下のコードを書く:

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

その仕事私のためでは.NET 4.5

1

Jaqen H'gharは、スポットオンです。

  1. ゴーNuGetパッケージを管理するために
  2. Microsoft.jQuery.Unobtrusive.Validation
  3. オープンのGlobal.asaxをインストールします。第三の方法は、です。CSファイルとアプリケーションの起動時に実行さApplication_Startメソッド内でこのコードを追加

コード:[jQueryを使ってASP.Net 2012控えめな検証]の

ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { 
    Path = "~/Scripts/jquery.validate.unobtrusive.min.js", 
    DebugPath = "~/Scripts/jquery.validate.unobtrusive.min.js" 
}); 
+0

これは私のために働いていましたが(.NET 4.6)、私は本を読んでいます。私は "ASP.NET Empty Web Site "プロジェクトはGlobal.asaxを持たないため、Global.asaxファイルを追加するプロジェクトに「グローバルアプリケーションクラス」を追加する必要がありました。 –

関連する問題