代码之家  ›  专栏  ›  技术社区  ›  John Boker

Asp.Net System.Web.Routing查找实际.aspx页面

  •  5
  • John Boker  · 技术社区  · 16 年前

    例如,请求以以下形式出现:

    /basketball/home
    

    我需要找到处理该请求的页面,如:

    /management/default.aspx
    

    提前谢谢。

    *******更新*******

    我能够使用 这给了我 “ASP.management\u default\u aspx” ,不完全是页面,但足以获取页面名称。

    5 回复  |  直到 16 年前
        1
  •  3
  •   morgan_il    12 年前

    实际上,还有另一种简单的方法可以获取实际页面:

    String vPath = ((System.Web.Routing.PageRouteHandler)Page.RouteData.RouteHandler).VirtualPath
    不要忘记检查Page.RouteData.RouteHandler是否不为空-当您直接获取不带ASP.Net路由的页面时。

        2
  •  2
  •   Chris Ballance    11 年前

    无法从当前HttpContext对象中检索此内容吗?

    public string GetCurrentPageName() 
    { 
        string sPath = System.Web.HttpContext.Current.Request.Url.AbsolutePath; 
        System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath); 
        string sRet = oInfo.Name; 
        return sRet; 
    } 
    

    更新:
    你试过这篇文章吗?

    How to: Construct a URL from a Route

        3
  •  1
  •   ejcortes    10 年前

    维恩的回答奏效了。。。

    Page.AppRelativeVirtualPath
    

    var path = Page.AppRelativeVirtualPath.Replace("~", String.Empty);
    

    我不知道为什么它被否决了。对我来说就像一个符咒。

        4
  •  0
  •   Alvin    12 年前

    尝试使用以下代码:

    Page.AppRelativeVirtualPath
    
        5
  •  -1
  •   John Boker    15 年前

    我能够使用Context.CurrentHandler,它给了我“ASP.management\u default\u aspx”,不完全是页面,但足以获得页面名称。