MVCを使ってOutPutCacheを使用する方法

MVCでは、OutputCache属性を使用すれば出力キャッシュを有効化できます。OutputCache属性は、コントローラの動作メソッドまたは全体のコントローラに適用できます。

コントローラのActionメソッドに対して出力キャッシュを使用するには、Actionメソッドの上部にOutputCache属性を追加し、キャッシュの継続時間やその他のオプションを指定します。

[OutputCache(Duration = 60, VaryByParam = "none")]
public ActionResult Index()
{
// 动作方法的逻辑
return View();
}

上の例はIndexアクションメソッドの出力は60秒間キャッシュされ、パラメータに基づいて変化することはありません。

コントローラ全体に出力キャッシュを使用するには、コントローラのクラスの上に出力キャッシュ属性を追加して、キャッシュの有効時間など、オプションを指定します。例:

[OutputCache(Duration = 60, VaryByParam = "none")]
public class HomeController : Controller
{
// 控制器的动作方法和其他逻辑
}

上の例では、HomeController のすべてのアクションメソッドを 60 秒間キャッシュし、いかなるパラメーターに対しても変化しません。

前述のDuration、VaryByParamオプションのほかに、OutputCacheでは、VaryByCustom、VaryByHeader、VaryByContentEncodingなどのオプションも提供されており、より細かいニーズに応じた設定を行えます。

なお、OutputCache属性はGETリクエストに対してのみ有効で、POSTリクエストは既定ではキャッシュされません。POSTリクエストをキャッシュしたい場合は、OutputCacheのLocation属性をOutputCacheLocation.ServerAndClientに設定してください。例:

[OutputCache(Duration = 60, VaryByParam = "none", Location = OutputCacheLocation.ServerAndClient)]
public ActionResult Index()
{
// 动作方法的逻辑
return View();
}

上記の例のIndexアクションメソッドが出力を60秒間キャッシュします。ただし、POSTリクエストの結果はキャッシュされません。

bannerAds