代码之家  ›  专栏  ›  技术社区  ›  davidsleeps

不带通配符映射的asp.net路由(在webforms中)

  •  0
  • davidsleeps  · 技术社区  · 15 年前

    如果您不能为IIS(共享主机)打开通配符映射,或者不介意(懒散),那么如果您的路由以一个“已知”的ASP.Net扩展结束,您是否仍然可以使用ASP.Net路由…例如以.ashx、.aspx等结束所有路由?

    Chris Cavenagh's blog 他的例子是:

    var routeHandler = new WebFormRouteHandler<Page>( "~/MyPage.aspx" );
    
        routes.Add( new Route( "{page}", routeHandler ) );
        routes.Add( new Route( "AccountServices/{page}", routeHandler ) );
        routes.Add( new Route( "Default.aspx", routeHandler ) );
    

    在没有通配符映射的情况下可以这样做:

    var routeHandler = new WebFormRouteHandler<Page>( "~/MyPage.aspx" );
    
        routes.Add( new Route( "{page}/view.ashx", routeHandler ) );
        routes.Add( new Route( "AccountServices/{page}/view.aspx", routeHandler ) );
        routes.Add( new Route( "Default.aspx", routeHandler ) );
    

    我推测,因为他的最后一条路由是Default.aspx,但他没有包含任何路由数据…有更好的方法吗?如果这样做有效的话,最好的办法就是移动应用程序或者打开通配符映射,只需要更改路由。。。

    1 回复  |  直到 15 年前
        1
  •  0
  •   davidsleeps    15 年前

    是的,这个工作…仍然有点恼人,必须包括一个扩展…但它的工作。