Я новичок в 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" имеет значение "none", да, я хочу, чтобы на сервере оставался только один кеш для действия, независимо от того, был ли передан параметр.
и код маршрутизации таков:
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/home/index/121212",the страница выходит и отображается идентификатор" 121212 ". Но когда я изменился на" http://localhost:27654/home/index/12",and, я вижу страницу был изменен, был показан идентификатор "12".
но если я обновлю страницу (параграф "id" не изменится), дата и время, показанные на странице, не изменятся, это означает, что asp.net сохранил кеш VaryBy в качестве параметра "ID", а не в моем наборе.
что не так?