我正在尝试切换现有的WebForms应用程序以使用路由,并希望分阶段完成。但是,我遇到了一些特定路线的问题:
//I want to catch existing calls to .aspx pages, but force them through
// a route, so I can eventually drop the .aspx extension
new Route("{page}.aspx", new MyCustomRoute());
这根本不起作用,因为对[SomePage] .aspx的调用永远不会绊倒这条路线......如果我改变路线看起来像这样:
//Same thing sans .aspx extension
new Route("{page}", new MyCustomRoute());
所有对[SomePage]的调用都被提起。有什么想法吗?
答案 0 :(得分:2)
好的,所以现在我觉得很蠢......
原来在RouteCollection
类上有一个名为RouteExistingFiles
的小属性,默认为false。显然,ASP.Net路由优先于现有文件,然后再将其转换为路由,因此任何对现有页面的调用显然都不会被我的路由处理。将此属性设置为true可以解决我的问题,尽管它可能具有我尚未意识到的意外副作用。