在用Request.UrlReferrer獲取上一頁面的地址時發現該對象為空(IE下,FF下可以得到對象),于是上網搜索發現:
什么時候可以使用此方法,什么時候此屬性的值為空,只有知道了其使用場合,才能更加有效的使用它,下面對其使用情況小結如下:
下列情況下,此屬性值是有效的:
(1)直接使用<a href>鏈接;
(2)通過表單提交的方式,或者說是有PostBack動作的按鈕,也或者是通過客戶端腳本進行了form.submit()動作;
下面這些情況,此屬性返回空值:
(1)通過IE的收藏,歷史,最近鏈接,首頁,或者是在地址欄中直接輸入當前頁面地址等方式;( ^_^,有些啰嗦 );
(2)使用了location.href or location.replace()等客戶端腳本方法導航到了當前頁面;
(3) 使用Response.Redirect / Server.Transfer方式,這個小解釋下,如果是在上一頁面的Page_Load直接使用了 Response.Redirect("Page2.aspx");或者Server.Transfer("Page2.aspx"),那么在 Page2.aspx中的Request.UrlReferrer是null,但如果是通過服務器按鈕進行的,返回值是正確的;
(4)使用Response.AddHeader (302) or <meta http-equiv=refresh>轉到的頁面中;
原來我的轉向按鈕在update
panel里面所以不能用事件redirect導向,所以我用button的onclinetclick()里寫的location.href方法轉向這
樣瀏覽器認為不是頁面跳轉過來的所以Request.UrlReferrer為空,于是換成<a>標簽連接跳轉,一切正常了!
(轉:http://hi.baidu.com/mwxwvcmmqbhluve/item/872787cf915b2f7188ad9ea3)
浙公網安備 33010602011771號