我想從當前頁面對象獲取pagename.aspx。我不要想通過HttpContext.Current做到這一點。 請求,因爲如果我已經在頁面上做某件事情,爲什麼不從頁面中抓取它......我不需要擔心這裏的任何上下文。從頁面對象獲取PageName.aspx
我猜這個頁面已經有了名字,我只需要追加.aspx,但是有沒有辦法讓它自動得到擴展?
我想從當前頁面對象獲取pagename.aspx。我不要想通過HttpContext.Current做到這一點。 請求,因爲如果我已經在頁面上做某件事情,爲什麼不從頁面中抓取它......我不需要擔心這裏的任何上下文。從頁面對象獲取PageName.aspx
我猜這個頁面已經有了名字,我只需要追加.aspx,但是有沒有辦法讓它自動得到擴展?
public string GetCurrentPageName()
{
string sPath = Request.Url.AbsolutePath;
System.IO.FileInfo oInfo = new System.IO.FileInfo(sPath);
string sRet = oInfo.Name;
return sRet;
}
我想從頁面對象中獲取它,而不是請求對象。 – PositiveGuy 2009-12-02 19:12:53
你不能依靠從頁面對象獲取它。尤其是在URL路由變得普遍的情況下,頁面URL(PageName.aspx)可能並不總是映射到名爲PageName的頁面類。 喜歡與否,獲取URL中使用的「頁面名稱」的正確方法是使用Request對象。 System.Web.UI.Page的其中一個屬性是Context。你說你不想擔心上下文。但是,Page對象始終可以通過該屬性訪問上下文。 我認爲你需要幫助我們理解爲什麼你非常堅持使用上下文以外的東西。 – Larsenal 2009-12-02 19:56:21
您可以從AppRelativeVirtualPath財產得到它。
可能有點晚,但這將幫助別人..
var path = Path.GetFileName(Request.PhysicalPath);
「如果我已經在頁面上,做一些事情,爲什麼不只是從一個頁面搶吧......我不需要擔心這裏的任何環境。「當然,如果沒有上下文,頁面就不能存在。所以在一個頁面上與在一個上下文中是一樣的。 – Hogan 2009-12-02 19:31:40