我的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中定义路由参数?
我想要这个,因为标题参数对我来说并不重要。它仅适用于搜索引擎,并且不会在我的代码中使用。
答案 0 :(得分:4)
VaryByParam处理问号“?”后面的参数,但您将路由隐藏在路径中。这就是为什么缓存总是“看到”不同的网址。 修复它改变
"video/{title}?id={id}
答案 1 :(得分:0)
试试这个:
routes.MapPageRoute("video-browse", "video/{id}/{title}/",
"~/routeVideo.aspx?id={id}");
答案 2 :(得分:0)
您可能需要在web.config中将 validateIntegratedModeConfiguration 设置为false。
EG。见...