2010-03-10 111 views
0

我想切换现有的WebForms应用程序以使用路由,并且希望分阶段完成。但是,我遇到了一些问题与特定的路线:使用WebForms的ASP.Net路由

//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

你的MyCustomRoute类是什么样的? – mark123 2010-03-10 04:24:29

+0

@ mark123 - 感谢您的关注,但我想我明白了。我觉得有一点愚蠢,以前没有看到过这个属性。我有点惊讶,但是MSDN文档并没有在它的“Routing for WebForms”例子的顶部以粗体字母的形式告诉你这个...... – Josh 2010-03-10 04:30:39

回答

2

好了,现在我觉得自己很蠢......

原来有名为RouteExistingFilesRouteCollection类默认为false这个小产权。显然,ASP.Net路由在将它们转换为路由之前优先考虑现有文件,因此对现有页面的任何调用显然都不会由我的路由处理。将这个属性设置为true可以解决我的问题,尽管它可能会产生意想不到的副作用,但我仍然没有意识到这一点。