2

ASP.NET MVC 4上にフレームワークを構築しています。MVC4の新しいバンドル機能が気に入っていますが、問題が発生しており、新しいバンドル機能がこのシナリオに対応しているかどうかわかりません。

私のレイアウトビューは、前のページの下部にあるスクリプトバンドルをレンダリングしています</body>

私のプロジェクトはフレームワークであるため、ビューはページに必要なすべてのバンドルを認識していません。私のプロジェクトはエディターテンプレートを多用しています。JavaScriptを含める必要があるかもしれませんが、次の理由でエディターテンプレート自体にレンダリングできません。

  • スクリプトを含める必要があるのは1回だけで、エディターテンプレートは複数回レンダリングできます。
  • スクリプトは、まだ含まれていないjQueryなどの他のjavascriptライブラリに依存している可能性があります(これらはページの下部に表示されます)。

だから、私がやりたいのは、エディターテンプレートで次のようなものです。

@Scripts.TriggerInclusion("~/path/to/bundle/that/this/editor/needs")

これにより、バンドルスクリプトタグがページの終わりに向かって1回だけレンダリングされます。

これをプロジェクトのインフラストラクチャに組み込むのに苦労することもありますが、この種のことはすでに何らかの形でサポートされていることを望んでいます。ありがとう!

4

2 に答える 2

8

自分で巻きました。ビルドは簡単で、私にとってはうまく機能します。

https://github.com/ronnieoverby/MvcAssetManager/blob/master/MvcAssetManager/Infrastructure/AssetManager.cs

私のプロジェクトのほとんどがまだ MVC3 であるため、あまり使用していません。しかし、私がそれを少し使っただけで、うまくいきました。

于 2012-10-16T18:00:50.727 に答える
3

これはバックログで追跡しているものであり、かなり複雑な機能であるため、おそらくいくつかのバージョンでこれに到達することはありません.

私たちの初期の考えは基本的に次のとおりです。

  • 名前付きアセットの登録を許可します。つまり、Assets.Register("jquery").Include("~/scripts/jquery.js")
  • バンドルにアセットを名前で含めることを許可する
  • Scripts.Requres("jquery")基本的に jquery アセットをページに登録する TriggerInclusion に似たようなものを追加します。
  • ページ上の登録済みのすべてのスクリプトを選択した場所にレンダリングし、アセットの重複排除などScripts.RenderRegistered()も行います。

この機能をどの程度優先するかはわかりません。そのため、これが本当に必要な場合は、こちらの codeplex サイトで問題を作成し、投票してください。

于 2012-09-11T23:47:30.253 に答える