簡體   English   中英

Asp.Net System.Web.Routing查找實際的.aspx頁面

[英]Asp.Net System.Web.Routing Find actual .aspx Page

我正在使用System.Web.Routing來獲得更好的URL,並遇到了一個問題。 我需要知道處理請求的實際頁面。

例如,請求來自:

/basketball/home

我需要找到處理該請求的頁面,例如:

/management/default.aspx

我只使用System.Web.Routing而不是MVC。 我有一個RequestContext的句柄,它包含一些路由信息,但我看不到我需要的東西。

提前致謝。

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

我能夠使用Context.CurrentHandler ,它給我“ASP.management_default_aspx” ,不完全是頁面,但足以獲取頁面名稱。

實際上還有另一種獲取實際頁面的簡單方法:

String vPath = ((System.Web.Routing.PageRouteHandler)Page.RouteData.RouteHandler).VirtualPath
不要忘記檢查Page.RouteData.RouteHandler不是null - 當你獲得沒有ASP.Net路由的頁面但直接。

你能不能從當前的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; 
} 

更新:
你試過這篇文章嗎?

如何:從路徑構造URL

您應該能夠從您構建的路由表中檢索它。

vhinn可怕的答案有效......

Page.AppRelativeVirtualPath

你只需要刪除初始波形符(“〜”),然后就可以了。

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

我不知道為什么它被downvoted。 為我工作就像一個魅力。

嘗試使用此代碼:

Page.AppRelativeVirtualPath

我能夠使用Context.CurrentHandler,它給我“ASP.management_default_aspx”,不完全是頁面,但足以獲取頁面名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM