2014-02-20 13 views
1

Я просто определяю дополнительный URL-адрес, как показано ниже для метода Home/Index action.Зачем настраивать кеш кеша предотвращения маршрута

 routes.MapRoute(
      name: "Playlists", 
      url: "Home/Playlists", 
      defaults: new { controller = "Home", action = "Index" } 
     ); 

А вот мой индекс действия с OutputCache Атрибут

[OutputCache(Duration = int.MaxValue, Location = OutputCacheLocation.Server, NoStore = true, VaryByCustom = "canVisit")] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

OutputCache атрибут хорошо работает, когда пользователь nagivates/Home/Index URL, но он не работает на всех, когда пользователь переходит/Главная/Плейлисты URL-адрес. Почему эта маршрутизация предотвращает вывод кэша?

+0

Если вы нажмете/Плейлисты после первого запроса, будет ли он кэшироваться? – maf748

+0

@ maf748 Нет, он не кэшируется даже после первого запроса. – Freshblood

ответ

0

Вы кэшируете результаты этого конкретного действия на основе URL-адреса ... так что в вашем случае кеш хранит две копии, одну связанную с помощью/Index и одну с помощью/Плейлисты.

+0

Но он даже не кэшируется для/Плейлисты. Запрошено в любое время/плейлисты, оно снова вызывается. – Freshblood