一、Request獲取url各類信息的方法
測試的url地址:http://www.test.com/testweb/default.aspx, 結果以下:
Request.ApplicationPath: /testweb
Request.CurrentExecutionFilePath: /testweb/default.aspx
Request.FilePath: /testweb/default.aspx
Request.Path: /testweb/default.aspx
Request.PathInfo:
Request.PhysicalApplicationPath: E:\WWW\testweb\
Request.PhysicalPath: E:\WWW\testweb\default.aspx
Request.RawUrl: /testweb/default.aspx
Request.Url.AbsolutePath: /testweb/default.aspx
Request.Url.AbsoluteUri: http://www.test.com/testweb/default.aspx
Request.Url.Host: www.test.com
Request.Url.LocalPath: /testweb/default.aspx
二、Request.UrlReferrer的使用
Request.UrlReferrer能夠獲取客戶端上次請求的url的有關信息,這樣咱們就能夠經過這個屬性返回到「上一頁」。
示例以下:
1. 首先在Page_load中得到並儲存該信息
Page_load(object obj,EventArgs e)
{
if(!IsPostBack)
{
if(Request.UrlReferrer!=null)
{
ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
}
}
}
l 頁面回發後會改變Request.UrlReferrer,將其指向當前頁面,因此須要進行判斷:只有在第一次請求頁面的時候才儲存該信息;
l 由於可能「上一次」的url不存在,因此須要進行判斷,只有在Request.UrlReferrer存在的狀況下才進行儲存;
2. 而後在返回函數中使用該信息
void Return()
{
if(ViewState["UrlReferrer"]!=null)
Response.Redirect(ViewState["UrlReferrer"].ToString();
}
在使用Request.UrlReferrer時還要注意:
(1) 若是上一頁面使用document.location方法導航到當前頁面,Request.UrlReferrer返回空值;
(2) 若是有A,B兩個頁面,在瀏覽器中直接請求A頁面,在A頁面的中Page_Load事件中導航到B 頁面,則 Request.UrlReferrer返回空。由於 在Page_load事件中頁面還未初始化,因此沒法記錄當前頁的信息,導航到b頁面也就沒法得到上一頁面的信息;
(3) 點擊刷新按鈕不會改變Request.UrlReferrer;
web