Исключить параметры маршрутизации в VaryByParam для Asp.Net 4 - PullRequest
1 голос
/ 17 апреля 2010

В моем файле global.asax есть настройка маршрутизации:

routes.MapPageRoute("video-browse", "video/{id}/{title}/", "~/routeVideo.aspx");

Моя страница routeVideo.aspx имеет настройку кэширования:

<%@ OutputCache Duration="10" Location="ServerAndClient" VaryByParam="id" %>

Но когда я запрашиваю http://localhost/video/6/example1 и http://localhost/video/6/example2 после этого, страница создается снова. Поэтому я думаю, что VaryByParam работает для *, но я хочу, чтобы компиляция только при изменении id. Есть ли способ определить параметры маршрутизации в VaryByParam?

Я хочу это, потому что параметр title для меня не важен. Он существует только для поисковых систем и не используется в моем коде.

Ответы [ 3 ]

4 голосов
/ 17 апреля 2010

VaryByParam обрабатывает параметр после вопросительного знака '?', Но ваша маршрутизация скрывает это в пути. Вот почему кеширование всегда «видит» разные URL. Чтобы исправить это изменить

"video/{title}?id={id}
0 голосов
/ 05 мая 2010

Вам может потребоваться установить validateIntegratedModeConfiguration в false в вашем файле web.config.

Например. смотри ...

Выходной кэш не работает с маршрутизацией

0 голосов
/ 02 мая 2010

Попробуйте это:

routes.MapPageRoute("video-browse", "video/{id}/{title}/", 
                    "~/routeVideo.aspx?id={id}"); 
...