Проблема с кэшированием ASP .Net MVC 2.0 - PullRequest
1 голос
/ 01 октября 2010

Я использую OutputCache для таких действий:

[OutputCache(Duration = 14400, VaryByParam = "none")]
public ContentResult Catalog()
{
 return ...;
}

и моя функция RegisterRoutes в Global.asax.cs содержит маршрут:

routes.MapRoute(
    "XMLRoute", // Route name
    "{site}/catalog.xml", // URL with parameters
    new { controller = "Home", action = "Catalog" } // Parameter defaults
);

Карты маршрутов URL, такие как:

  • example.com / site1 / catalog.xml
  • example.com / site2 / catalog.xml
  • example.com / все / catalog.xml

к действию каталога.

Я полагаю, что ожидаемым результатом будет возвращение статического содержимого после первого запроса для каждого переданного параметра, но содержимое не кэшируется должным образом. Должен ли я изменить действие Каталога, чтобы использовать параметр, а затем указать VarybyParam = "none" и добавить параметр с UrlParameter.Optional в функции MapRoute или здесь что-то еще происходит?

1 Ответ

0 голосов
/ 09 июля 2013

После долгих проб и ошибок я обнаружил, что лучшим способом было использовать:

[OutputCache(Duration = 14400, VaryByParam = "*")]

И предоставить параметры с помощью перенаправления, чтобы использовались значения по умолчанию и показывалось кэшированное содержимое.

...