3

outputcache属性を使用して、コントローラー アクション パラメーターによってキャッシュを変更する方法はありますか? パラメータが REST 方式で URL 内に埋め込まれている場合、varybyparamは機能しません。

4

2 に答える 2

10

「VaryByParam」が「そのアクション メソッドに渡されるパラメーターによって変化する」という意味ではないことをアクション メソッドで認識することも重要です。これは、「HTTP パラメーターとして生成されたアクション メソッドに渡されるパラメーターによって異なる」ことを意味します。

[OutputCache(CacheProfile = "ContentPage", VaryByParam = "mode")]
public ActionResult Index(string key, string mode)
{

}

このアクション メソッドのルートは次のとおりです。

  routes.MapRoute(
   "video-route-short",
   "video/{key}",
   new { controller = "Video", action = "Index", key = (string)null }
  );

Craig が上で述べたように、キー パラメータは URL の一部であるため、キャッシュは適用されません。つまり、基本的に常にキャッシュされます。

' ' タイプを介して送信されるモード パラメータは?mode=1、キャッシングに適用されます。

于 2009-05-14T18:39:38.803 に答える
6

デフォルトでは、キャッシュはこのように機能します。URL が異なれば、キャッシュの場所も異なります。おそらくあなたの質問には何かが欠けているかもしれませんが、述べたように、すでにこのように機能しています。

于 2008-12-12T13:54:21.037 に答える