2011-12-10 14 views
0

Asp.Net MVC3プロジェクトで、剃刀エンジンを使用して作業しているとき、私は最高の状態で処理する方法がわからないという状況を発見しました。ビューで は、私は次のような状況があります。スクリプトとcssをMVC3のレンダリング/パーシャルビューに含める最も良い方法

@foreach (var item in Model.Items) { 
    Html.RenderAction("ActionName", new {param = item}); 
} 

私はそれが非常に典型的な状況だと思います。

ここで、正しく動作させるにはjavascriptファイルを2つ必要とし、HTMLも表示するとします。また、このアクションのpartialViewは、1回以上別のビューでも使用できるようにする必要があります。

質問は次のとおりです。外部jsとcssへの参照はどこに置くのが最適でしょうか?私はPartialViewで言うだろう...しかし、私はn回RenderActionを呼び出すことを避けることができます、同じスクリプトの宣言n倍のページを置くことはありません? また、jsとcssを繰り返すという問題は解決されました。この外部リソースをビューにどのようにバインドする必要がありますか?通常、私の見解では、パフォーマンス上の理由から、外部リソースを専用セクションに置き、レイアウトページをページの最下部にレンダリングします。それを呼び出すビューがスクリプトセクションにアクセスできると仮定して、partialViewで同じことをする必要がありますか?しかし、この方法で再利用可能なpartialViewのデザインをホスティングビュー構造にバインドします:もしそうなら、私はホスティングビューでスクリプトとCSSを宣言するべきではありませんか?

私はMVCには新しく、このアプローチではどのアプローチを使用してこの設計上の問題を解決しているのか知りたいと思います。

答えて

0

私は通常、いくつかのページや1つだけのCSSやjsファイルが必要かどうかを判断しようとします。例えば、私はlayout.cshtmlのjqueryファイルをインクルードするだけで、メインのcssファイルと同じ、プロジェクト内のすべての単一のビューを保証します。そして、私は特定のビューだけに必要なファイルをteにします。私はメインビューが何であっても、そのビューにすべての部分的なものも含めます。部分的に参照を入れて複数回呼び出すと、複数の参照があります。あなたはforeachループのすぐ上にバイバイ参照を置くことができ、すべての部分はそれにアクセスできます。

+0

ループの前に参照を置くことを推奨しますが、設計上の問題が発生すると思います。メインビューでは、パーシャルビューが表示されるために必要な部分を知っている必要があります。おそらくこれはデザインパターンの点では良くありません... – themarcuz

+0

メインビューは何を意味していますか?あなたのコントローラーまたはレイアウトビューでアクションのためのビューですか? –

+0

私はアクションのビューを意味します – themarcuz

関連する問題