【问题标题】:ASP.Net Routing with WebForms带有 WebForms 的 ASP.Net 路由
【发布时间】:2010-03-10 04:17:57
【问题描述】:

我正在尝试切换现有的 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] 的所有呼叫都将被接听。有什么想法吗?

【问题讨论】:

  • 你的 MyCustomRoute 类是什么样的?
  • @mark123 - 感谢您的关注,但我想我明白了。我以前没有看过那个属性,我觉得有点愚蠢。我有点惊讶,但是 MSDN 文档并没有在其“WebForms 路由”示例的顶部用粗体字告诉您这一点......

标签: asp.net webforms routing


【解决方案1】:

好吧,所以现在我觉得自己很愚蠢......

原来RouteCollection 类上有一个名为RouteExistingFiles 的小属性,默认情况下为假。显然 ASP.Net 路由在将现有文件移交给路由之前优先考虑它们,因此对现有页面的任何调用显然不会由我的路由处理。将此属性设置为 true 可以解决我的问题,尽管它可能会产生我尚未意识到的意外副作用。

【讨论】:

    猜你喜欢
    • 2013-04-26
    • 2010-10-24
    • 2011-08-08
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多