2009-12-02 45 views
15

我可以使用什麼對象從URL獲取當前的PageName.aspx(包括擴展名.aspx)?當我在一個頁面上時,我無法找到什麼對象和方法來讓我抓住它。如何從URL中抓取.aspx頁面名稱?

+0

您可以谷歌,你知道。在谷歌的asp.net裏輸入獲取頁面名稱,它可以創造奇蹟。 – JonH 2009-12-02 14:42:23

+3

如果「googling」購買了堆棧溢出頁面,那麼您應該發佈該問題/答案。如果沒有,那麼應該像這樣問這個問題,這樣StackOverflow就成了第一個調用「Google搜索」的端口。 – 2009-12-02 14:47:39

+2

@LymanZerga和@Robin日,谷歌上的第一個答案(也許還有其他答案),這是我的搜索www.aspcode.net/Get-current-page-name.aspx,導致基於FileInfo的解決方案。請參閱下面的答案,瞭解它的缺點。這就是爲什麼這樣一個看起來如此微不足道的問題仍然值得討論**,分享我們所有人的知識和經驗。乾杯! – 2009-12-02 15:00:40

回答

10

皮諾這裏的源律人:http://www.devx.com/tips/Tip/42433

string sPagePath = System.Web.HttpContext.Current.Request.Url.AbsolutePath; 
    System.IO.FileInfo oFileInfo = new System.IO.FileInfo(sPagePath); 
    string sPageName = oFileInfo.Name; 
2
Request.Url.AbsolutePath 

拆分約 '/',最後一項是你的文件名。

14

請注意,有時,在像GoDaddy這樣的共享主機上,您可能沒有權限創建新的FileInfo對象。是的,相信它。

因此,我建議你使用這個片段:

string fullPath = /* System.Web.HttpContext.Current. (optional in most cases) */ Request.Url.AbsolutePath; 
string fileName = System.IO.Path.GetFileName(fullPath); 

享受:-)

+1

真的很不錯,特別是在一個語句中:'System.IO.Path.GetFileNameWithoutExtension(Request.Url.AbsolutePath)' – 2013-04-25 12:06:14

+0

推測'GetFileName'和'GetFileNameWithoutExtension'只是解析傳入的名字而不是實際做任何事情與文件系統... – 2013-04-25 12:15:07

-2

如何:

var pageName = System.IO.Path.GetFileName(Request.Url.ToString()); 
    Response.Write(pageName); 
-2
string pageName = Path.GetFileName(Request.Path); 
+1

Path.GetFileName(Request.PhysicalPath);是正確的! – AminM 2013-04-30 07:56:48

1

Path.GetFileName(Request.PhysicalPath)可用於獲取實際文件名