Asp.net mvc ASP.NET MVC 3 OutputCache路由:1个操作的2个路由生成2个缓存页
“outputcache正在缓存2个页面(有2个URL),只缓存1个相同的操作” 为什么? 我想outputcache正在查找RoutedData值…,不是吗 所以, 在我的网站上,我的主页有两个URL: "http://www.domain.com/" 及 "http://www.domain.com/search/mysearchpage.htm" 以下是路线:Asp.net mvc ASP.NET MVC 3 OutputCache路由:1个操作的2个路由生成2个缓存页,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,outputcache,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,Outputcache,“outputcache正在缓存2个页面(有2个URL),只缓存1个相同的操作” 为什么? 我想outputcache正在查找RoutedData值…,不是吗 所以, 在我的网站上,我的主页有两个URL: "http://www.domain.com/" 及 "http://www.domain.com/search/mysearchpage.htm" 以下是路线: routes.MapRoute( "nameofmyroute",
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=>时,我的操作正在启动,所有操作都已完成。
当我重新请求“/”=>时,我的操作没有被触发=>很酷,它正在工作!它是从缓存中取出的
但是:
当我请求“/search/mysearch.htm”=>时,我的操作也被触发!
我不明白为什么
PS:我的动作没有参数
你对此有什么解释吗?
非常感谢!:)
对不起,我说的是英语。ASP.NET Outputcache提供程序基于Url,而不是您的路由。好的,但这是默认Outputcache提供程序的正常处理方式吗?是的,MVC输出缓存与基于Url的webform相同(默认情况下)。但是,您可以重新实现提供程序,将url键替换为“restful路径”