我的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参数对我来说并不重要。它只用于搜索引擎,并没有在我的代码中使用。
发布于 2010-04-17 20:24:39
VaryByParam处理问号'?‘后面的参数,但您的路由将其隐藏到路径中。这就是为什么缓存总是“看到”不同的urls。要修复它,请更改
"video/{title}?id={id}发布于 2010-05-02 22:05:32
试试这个:
routes.MapPageRoute("video-browse", "video/{id}/{title}/",
"~/routeVideo.aspx?id={id}"); 发布于 2010-05-05 07:02:59
您可能需要在web.config中将validateIntegratedModeConfiguration设置为false。
例如:你看..。
https://stackoverflow.com/questions/2657792
复制相似问题