我是一個MVC初學者,今天我遇到了一個奇怪的問題:我想使用的OutputCache啓用緩存上一個action.code這樣的:輸出緩存屬性的服務器緩存錯誤?
[OutputCache(Duration=86400,VaryByParam="none")]
public ActionResult Index(string id)
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
ViewBag.ID = id;
return View();
}
注意「的VaryByParam」屬性爲「無」 ,是的,我希望服務器只保留一個緩存的行動,無論param傳遞。 和路由代碼是這樣的:
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://本地主機:27654 /首頁/指數/ 121212」,頁面出來並顯示id「121212」。但是當我更改爲「http:// localhost:27654/home/index/12」時,並且我看到頁面已更改,則顯示了id「12」。
但如果我刷新頁面(para「id」不變),頁面中顯示的日期時間沒有改變,意味着asp.net保持緩存VaryBy爲「ID」段,而不是我的設置。 有什麼不對?
的http://計算器.COM /問題/ 2198388 /緩存與 - 變化逐routevalue http://stackoverflow.com/questions/4518671/does-varybyparam-also-read-routedata-values – user960567