Scriptmanager Asp.Net Mvc
-
11-07-2019 - |
質問
新しいAsp.net MVCモデルにScriptManager機能のいくつかを追加したい:
1-スクリプト結合
2-外部JavaScriptファイルのさまざまなパスの解決
3-圧縮とGzip圧縮
ここは私が見つけたものですが、確かではありませんMVCアプローチの最良の方法。一般的に、MVCモデルでJavascriptコードを処理するための適切なアプローチは何ですか?
解決
圧縮されたJSファイルのさまざまな組み合わせを提供するさまざまなアクションを持つ新しい「スクリプト」コントローラーを作成することもできます。 MVCはリソース指向のアプローチで設計されているため、つまりURLはプログラミングモデルの中心にあるので、Javascriptの単純なURIも定義してみませんか?
ビューでは、たとえば次のようにファイルを参照できます:
<script src="http://your_domain/scripts/all"/>
これにより「すべて」のアクションが呼び出され、すべての圧縮スクリプトファイルが送信されます。
もちろん、今のところ結合と圧縮をコーディングする必要があります。あるいは、Scriptmanagerを内部で再利用する必要があるかもしれません。それが可能かどうかはわかりません。
これは単なるアイデアですが、現在、マスターページで個々のjavascriptファイルを直接参照しています。
他のヒント
これを試してください: http://www.codeplex.com/MvcScriptManager
MvcScriptManagerは、AjaxControlToolkitのToolkitScriptManagerで使用可能な特定の主要機能を現在のASP.NET MVCフレームワークに移植することを目的としています。 ASP.NET MVCアプリケーションのコントロールとして使用できます。
機能
- スクリプトの組み合わせ(または連結)。 MvcScriptManagerで宣言されたスクリプトは、ページがレンダリングされるときにオンザフライで1つのスクリプトファイルリクエストに結合されます。
- リリースモードでのスクリプトの縮小(またはクランチ)。縮小プロセスは、特定のスクリプトを参照する最初の要求で1回だけ実行されます。後続のリクエストでは、キャッシュ内の圧縮されたスクリプトコンテンツが使用されます(詳細については#5を参照)。クランチは各スクリプトで有効/無効にできます。
- スタンドアロンスクリプトファイルのローカライズされたリソースをレンダリングします。指定されている場合、ローカライズされた文字列がスクリプトに追加されます。
- スクリプトの出力時に構成可能なHTTP圧縮と有効期限の設定をサポートします。
- ファイル依存関係のあるスクリプトキャッシング。スクリプトファイルのコンテンツはキャッシュされるため、結合されたスクリプトファイルのレンダリングのパフォーマンスが大幅に向上します。キャッシュの依存関係は物理ファイルにリンクされているため、ファイルシステム内のスクリプトの更新はすぐにキャッシュに反映されます。
- 実行環境に基づいてデバッグ/リリースモードでスクリプトのレンダリングをサポートします。
- スタンドアロンスクリプトファイルのさまざまなパスの解決。
- 単一ページ(またはマスターページ)で複数のMvcScriptManagerをサポートします。 1つのScriptManagerで宣言されたスクリプトをレンダリングのために別のスクリプトマネージャーにロールオーバーできるように、マスターとスレーブの両方のレンダリングモードをサポートします。
- Webファームのシナリオをサポート...
または、ScriptManager自体を、ページごとに1回の単独の<form runat="server">
の唯一の住民として含める方法はどうですか?
これに似ています:-
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true">
</asp:ScriptManager>
</form>
私のために働く。
PSこのフォームタグが別のフォームに埋め込まれないようにする必要があります。ネストされたフォームは機能しません。
この調査は、ほぼ同じ問題を発見しました: ASP.NET MVC用のシンプルなScriptManager -この質問に回答した後に書かれたので、参照用に追加しました。
最初の例では、ブルートフォースソリューションを使用します。つまり、すべてをマスターページに貼り付けます(特にMicrosoftのCDNからjQueryをプルできるようになったため)。次に、より最適なソリューションのオプションを調査します。
MVC 4には、バンドルおよび縮小ヘルパーが含まれるようになりました。バンドルに入るすべてのスクリプトを定義すると、MVCがバンドル、圧縮、キャッシュの無効化などを処理します。
http://www.asp.net/mvc/ tutorials / mvc-4 / bundling-and-minification