首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Asp.Net 4的VaryByParam中排除路由参数

在Asp.Net 4的VaryByParam中排除路由参数
EN

Stack Overflow用户
提问于 2010-04-17 16:38:03
回答 3查看 1.4K关注 0票数 1

我的global.asax文件中有一个路由设置:

代码语言:javascript
复制
routes.MapPageRoute("video-browse", "video/{id}/{title}/", "~/routeVideo.aspx");

我的routeVideo.aspx页面有缓存设置:

代码语言:javascript
复制
<%@ OutputCache Duration="10" Location="ServerAndClient" VaryByParam="id" %>

但是,当我在此之后请求http://localhost/video/6/example1http://localhost/video/6/example2时,页面被再次创建。所以我认为VaryByParam适用于*,但我只想在id改变时编译。有没有办法在VaryByParam中定义路由参数?

我之所以需要这个,是因为title参数对我来说并不重要。它只用于搜索引擎,并没有在我的代码中使用。

EN

回答 3

Stack Overflow用户

发布于 2010-04-17 20:24:39

VaryByParam处理问号'?‘后面的参数,但您的路由将其隐藏到路径中。这就是为什么缓存总是“看到”不同的urls。要修复它,请更改

代码语言:javascript
复制
"video/{title}?id={id}
票数 4
EN

Stack Overflow用户

发布于 2010-05-02 22:05:32

试试这个:

代码语言:javascript
复制
routes.MapPageRoute("video-browse", "video/{id}/{title}/", 
                    "~/routeVideo.aspx?id={id}"); 
票数 0
EN

Stack Overflow用户

发布于 2010-05-05 07:02:59

您可能需要在web.config中将validateIntegratedModeConfiguration设置为false。

例如:你看..。

Outputcache doesn't work with routing

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2657792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档