2010-06-04 71 views
2

我尝试在Visual Studio 2010和 .NET Framework 4.0中使用MapPageRoute功能和asp.net webforms应用程序。asp.net Webforms MapPageRoute的优先顺序

我注意到的是,如果我定义了一个名为“Default”的页面路由,如下面的 以及项目中存在Default.aspx页面,那么路由 不起作用。

routes.MapPageRoute("Default", "default.aspx", "~/Page2.aspx"); 
routes.MapPageRoute("Test", "test.aspx", "~/Page2.aspx"); 

如果我在项目Default_1.aspx改变Default.aspx的名称,然后 路由工作正常。

似乎有一些优先顺序正在进行。有没有办法让 我的路由定义首先被评估,所以我不必将我的页面重命名为 使用路由引擎?

回答

3

RouteCollection上有一个属性,名为RouteExistingFiles,默认设置为false。这解释了为什么默认路由不起作用,如果你有一个default.aspx页面。

如果您在代码行之前插入routes.RouteExistingFiles = true;,则会使路由优先。我不是100%确定它是否会回落到文件,如果它不能路由 - 我想这取决于你设置的路线...

+1

设置routes.RouteExistingFiles =真的伎俩。谢谢。 – moke 2010-06-07 02:45:54