代码之家  ›  专栏  ›  技术社区  ›  Dan Maharry

你能从你的网页上决定路线的名称吗?

  •  5
  • Dan Maharry  · 技术社区  · 14 年前

    我有一个ASP.NET 3.5 WebForms项目,我启用了路由。 我在这个项目中也有一些控件根据它们当前显示在哪个页面上做不同的事情。似乎控制这种不同行为的最直接方法是发现用于加载页面的路由,然后根据该路由进行操作。

    但是,我似乎找不到一种方法来发现路由栏,查看实际的请求URL并在上面运行一个regex,这并不好。有人知道另一种查找方法吗?

    更新:在ASP.NET 4.0中似乎仍然没有这样做的方法。希望有人知道?

    3 回复  |  直到 10 年前
        1
  •  3
  •   Dan Maharry    14 年前

    菲尔·哈克似乎在他的网站上的一篇博文中回答了这个问题: http://haacked.com/archive/2010/11/28/getting-the-route-name-for-a-route.aspx

        2
  •  0
  •   p.campbell    12 年前

    在.NET 4 webforms应用程序中,我使用它来确定路由定义。

     string myOperation =
         ((System.Web.Routing.Route)(Page.RouteData.Route)).Url;
    
     //string has value "Stop" or "Start"
    

    假设你的路线是这样的:

            routes.MapPageRoute("StopEmailAlerts",
                "Stop/{SomeToken}",
                "~/Emailing.aspx", false);
    
            routes.MapPageRoute("SendEmailAlerts",
                "Start/{SomeToken}",
                "~/Emailing.aspx", false);    
    
        3
  •  0
  •   Community Johnny    7 年前

    我发布了一些简单的扩展方法,您可以使用这些方法来获取/设置路由名称。 post . 在我看来比哈克的解决方案简单。