Когда я использую выходное кэширование в методе действия, он кэшируется полным URL-адресом, что я хотел бы сделать - кэшировать страницу, но игнорировать некоторые части URL-адреса.
Пользовательский маршрут, определенный в Global.asax:
routes.MapRoute(
"Template",
"Report/{reportid}/{reportname}/Template/{templateid}/{action}",
new { controller = "Template", action = "Index" }
);
Мой контроллер шаблонов
public class TemplateController : Controller
{
[OutputCache(Duration=60*60*2)]
public ActionResult Index(Template template)
{
/* some code */
}
}
Например, когда я перехожу к следующим URL-адресам:
http://mywebsite.com/Report/789/cacheme/Template/5
-> кэшируется в течение 2 часов на основена URL
http://mywebsite.com/Report/777/anothercacheme/Template/5
-> также кэшируется в течение 2 часов на основе этого URL
Что мне хотелось бы, чтобы OutputCache игнорировал значения имени отчета и reportid поэтому, когда я перехожу по указанным выше URL-адресам, возвращается та же самая кэшированная версия .Возможно ли это с атрибутом OutputCache или мне придется написать свой собственный OutputCache FilterAttribute?