ASP.NET MVC 3 OutputCache Routing: 2 маршрута за 1 действие создают 2 кэшированных страницы - PullRequest
1 голос
/ 16 декабря 2011

"Выходной кэш кэширует 2 страницы (есть 2 URL) только для одного и того же действия" ПОЧЕМУ ??Я думал, что outputcache ищет значения Routedata ..., нет?

Итак, на моем сайте у меня есть 2 URL-адреса для домашней страницы:

"http://www.domain.com/"

и

" http://www.domain.com/search/mysearchpage.htm"

Вотмаршруты:

routes.MapRoute(
                "nameofmyroute",
                "search/mysearchpage.htm",
                new { controller = "Search", action = "do", id = "" },
                new { controller = @"[^\.]*" }
            );

routes.MapRoute("Default",
               "{controller}/{action}/{id}",    
                new { controller = "Search", action = "do", id = "" },
                new { controller = @"[^\.]*" }
            );

Вот моя конфигурация кэширования:

<add name="defaultcache"
duration="3600"
enabled="true" 
location="ServerAndClient" />

Когда я спрашиваю "/" url =>, мое действие запускается, и все действие выполнено.Когда я снова спрашиваю "/" => мое действие не запускается => круто, это работает!он берется из кеша.

Но: когда я спрашиваю "/search/mysearchpage.htm" =>, моё действие также запускается!Я не понимаю, почему ...

PS: В моем действии нет параметров.

У вас есть объяснение этому?Большое спасибо !:)

Извините за мой английский.

1 Ответ

2 голосов
/ 16 декабря 2011

Поставщик ASP.NET Outputcache основан на URL, а не на вашей маршрутизации.

...