2012-03-21 9 views
1

これはabout asp.net mvc3 webアプリケーションです。動的に生成されたビューをMVC3 Webアプリケーションのキャッシュに保存する方法は?

高価なdbクエリを防ぐために、オブジェクトキャッシュを使用してシリアル化されたオブジェクト(製品の詳細を含む)を格納しています。

オブジェクトキャッシュに100個の製品プロパティを格納しているとします。このプロパティは、キャッシュから読み込み時に取得され、dbではなく読み込まれます。そしてそれは、ページを準備して表示するビューに渡されます。そのため、ビューを100回繰り返し、関連する部分ビューを呼び出してページを準備します。

オブジェクトキャッシュを使用するのではなく、キャッシュに生成されたビューを格納することをお勧めしますか?そしてそれをどうやってやるの?

答えて

1

ビューが静的な場合は、キャッシュに保存できます。あなたはアクションの上にOutputCache属性を置くことによってそれを行うことができます。

VB:

<OutputCache(Duration:=3660, VaryByParam:="None")> 

C#

[OutputCache(Duration=3660, VaryByParam="None")] 

あなたが行動に基づいて異なるためにキャッシュが

パラメータたい場合は、設定VaryByParamを変更することができます
2

生成されたビューをオブジェクトキャッシュではなくキャッシュに格納することをお勧めしますか?

はい。

どうすればいいですか?

[OutputCache]属性でこのビューに対応しているコントローラアクションをデコレートします。または、ページの一部だけをキャッシュしたい場合は、Html.Actionヘルパー(HTML.Partialではなくキャッシュできません)でレンダリングされる子アクションに対してこの属性を使用できます。

関連する問題