私は奇妙な問題に会ったMVCの初心者と今日だ:私はこのような1 action.code上のキャッシュを有効にするには、OutputCacheを使用する:「VaryByParam」プロパティが「なし」ではないことOutputCache属性のサーバーキャッシュバグ?
[OutputCache(Duration=86400,VaryByParam="none")]
public ActionResult Index(string id)
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
ViewBag.ID = id;
return View();
}
お知らせ、はい、私はサーバーがアクションのための1つのキャッシュを保持したい、どのようなパラメータが渡された。 およびルーティングコードはこれです:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
、私は探検開き、結果は私が望むものではないが、例えば私が入力します。「のhttp:// localhostを:27654 /ホーム/インデックス/ 121212」、 "http:// localhost:27654/home/index/12"に変更し、ページが変更されたことを確認すると、ID "12"が表示されました。
しかし、ページを更新すると(パラ "id"は変更されません)、ページに表示されるdatetimeは変更されませんでした。つまり、asp.netはキャッシュのVaryByを自分のセットではなく "ID" 。 どうしたの?
ます。http:// stackoverflowのあなたも、このトピックを読んで、パラメータに
some
をcange場合は、キャッシュの新しいバージョンが作成されません例をしようとしますので、もし私の例では
string some
は、ルートの一部ではありません.COM /質問/ 2198388 /キャッシング-と-変動バイroutevalue http://stackoverflow.com/questions/4518671/does-varybyparam-also-read-routedata-values – user960567