ASP.NET MVC 3 OutputCache路由:1个动作的2个路由构成2个缓存页面

时间:2011-12-16 15:26:23

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing outputcache

“outputcache只缓存了2个页面(有2个URL),只有1个相同的动作” 为什么? 我认为outputcache正在寻找routedata值...,不是吗?

所以, 在我的网站上,我有2个主页的网址:

“http://www.domain.com/”

“http://www.domain.com/search/mysearchpage.htm”

以下是路线:

routes.MapRoute(
                "nameofmyroute",
                "search/mysearchpage.htm",
                new { controller = "Search", action = "do", id = "" },
                new { controller = @"[^\.]*" }
            );

routes.MapRoute("Default",
               "{controller}/{action}/{id}",    
                new { controller = "Search", action = "do", id = "" },
                new { controller = @"[^\.]*" }
            );

这是我的缓存配置:

<add name="defaultcache"
duration="3600"
enabled="true" 
location="ServerAndClient" />

当我要求“/”url =&gt;我的行动正在解雇并且所有行动都已完成。 当我再次要求“/”=&gt;我的行动没有被解雇=&gt;很酷它的工作!它来自缓存。

但: 当我要求“/search/mysearchpage.htm”=&gt;我的行动也被解雇了! 我不明白为什么......

PS:我的行动没有参数。

你有解释吗? 非常感谢 ! :)

抱歉我的英文。

1 个答案:

答案 0 :(得分:2)

ASP.NET Outputcache提供程序基于Url而不是您的路由。