2013-01-24 50 views
2

我有兩個不同的頁面,但都進入相同的頁面X。 當我到達頁面X時,有可能知道最後一頁是什麼?我的意思是,重定向到頁面X的頁面是什麼。如何知道上一頁?

e.g:我在page1.aspx,我有一個按鈕,重定向到bonus.aspx,但我也有 page2.aspx有另一個按鈕也重定向到bonus.aspx。有可能知道重定向到bonus.aspx的頁面是什麼?最後一頁是什麼?

我需要知道它,因爲我會根據上一頁修改bonus.aspx的內容。

我只想做這樣的事情:

protected void bonus_load(object sender, EventArgs e) 
    { 
    if(PreviousPage.Name == "page1.aspx") 
     { 
      //Do Something 
     } 
    else if(PreviousPage.Name == "page2.aspx") 
     { 
      //Do Other Things 
     } 
    } 

觀測值:我需要使用它在button_OnClick="" Event

+0

如果您使用「Server.Transfer」而不是'Response.Redirect',那麼''PreviousPage'屬性不是'null'。然後你可以訪問最後一頁的所有控件和它們的'ViewState'。 –

+0

@TimSchmelter嗯...我會搜索一些關於它的文檔。這簡單嗎 ? – Ghaleon

+1

您可以將上一頁作爲查詢字符串參數傳遞並存儲爲隱藏字段。如果沒有簡單解決,這個前一頁的問題很快就會變成一個非常討厭的問題。 – Jonathan

回答

5
protected void bonus_load(object sender, EventArgs e) 
{ 
    string previousPage = HttpContext.Current.Request.UrlReferrer.AbsolutePath; 

    if (previousPage == "/page1.aspx") 
    { 
     //Do Something 
    } 
    else if (previousPage == "/page2.aspx") 
    { 
     //Do Other Things 
    } 
} 
+0

我更新了我的問題。我如何在我的情況下使用它? – Ghaleon

+0

其實沒有工作...它返回我當前頁我需要以前= s。我有一個「返回」按鈕,當我點擊它時,字符串'referrer'獲取當前頁面作爲值。所以它永遠不會進入'如果'...我怎麼能這樣做?謝謝 – Ghaleon

+0

@Ghaleon你可以發佈來自'page1.aspx'和'page2.aspx'的代碼,負責重定向到'bonus.aspx'嗎? –

5

Page_Load功能:

if(!Page.IsPostback) 
    { 
    var referrer = Request.UrlReferrer.ToString(); 
    } 

更新: 以下方法調用將以類似於「/Page1.a」的格式返回給您SPX」。

var referrer = Request.UrlReferrer.AbsolutePath 
+0

工作...但它給了我整個網址的權利?你知道一種方法只獲取頁面的名稱嗎?如:'page1.aspx'?謝謝 ! – Ghaleon

+2

那麼你需要使用細分屬性。請參閱:http://msdn.microsoft.com/en-us/library/system.uri.segments(v=vs.110).aspx – daryal

+0

嘿@daryal。 '段屬性'工作完美!並且爲了解決這個問題,我將這個值存儲在一個標籤上,這個標籤的Visible = False可能會在未來成爲一個問題? – Ghaleon