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リクエストの結果はキャッシュされません。