9

私は私の中に次の設定を持っていますweb.config:

<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

クライアント側の検証は使用していません。

これらを に設定するfalse必要がありますか、それとも両方のエントリを削除するだけでよいですか?

4

4 に答える 4

9

2 つの異なる設定Web.configが結合されていますが、同義ではありません。

<add key="ClientValidationEnabled" value="false"/>

クライアント検証が有効かどうかを決定します。値がfalseに設定されている場合、モデルの注釈 (required, min, maxなど) はクライアント側の属性または動作を作成しません。

<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

ASP.NETがクライアント側の非同期タスクにJQueryを使用するか、生のJavaScriptを使用するかを決定します。

の場合UnobtrusiveJavaScriptEnabled=false、クライアント側の検証は引き続き機能しますが、 JQueryで生のJavaScriptを使用します。


JavaScript よりも JQuery を使用する意義は何ですか?

一部の環境では、JQueryを使用しないことを選択しています。UI フレームワークを大幅にカスタマイズしています。JQueryは、独自の方法で既に使用されている場合があります。または、すべての非同期拡張に別の JS ライブラリが使用されている可能性があります

生の JavaScript を使用するデメリットは何ですか?

  • Ajaxヘルパーは、JQuery (UnobtrusiveJavaScriptEnabled)なしでは機能しません。

  • 生のJavaScriptは扱いにくく、マークアップに多くのものを詰め込んでしまいます。JQuery は、より軽量でクリーンなマークアップを作成します。(「より軽い ajax 属性」の利点)

  • 生のJavascriptは堅牢性が低くなり、効率が低下する可能性があります。ASP.NET JavaScriptライブラリは 3 年間進化していないことに注意してください( MVC 3のリリースよりずっと前)。


結論は:

クライアント側の検証を無効にする場合は、設定します

<add key="ClientValidationEnabled" value="false"/>

ただし、ClientValidationEnabled設定をのままにしておくことをお勧めしますtrue。モデルを検証アノテーションで装飾しない場合、フレームワークは検証属性をレンダリングしません。オプションを開いたままにして、クライアント側の検証を使用するビュー/ビューモデルごとに決定することをお勧めします。

UnobtrusiveJavaScriptEnabledを無効にすることはお勧めしません。ASP.NET MVC FrameworkでJQueryを使用する微妙な方法が多すぎます。これにより、クライアント側の検証が無効になりません。

重要な注意:どちらのエントリも削除しないでください。無効にしたい場合は、 に設定してfalseください。いずれかのエントリを削除すると、フレームワークのデフォルトの動作 (時間の経過とともに変化する可能性があります) に翻弄されます。

于 2013-10-12T22:28:55.340 に答える
2

目立たない設定でOKです。

ClientValidationEnabledに設定する必要がありますfalse

<configuration>
  <appSettings>
    <add key="ClientValidationEnabled" value="false"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
  </appSettings>
</configuration>

お役に立てれば。

于 2013-10-16T06:08:27.020 に答える