2017-06-01 67 views
0

使用PostBackUrl的目的是什麼?
比方說,我有一個button這是Cart.aspxPostBackUrl的用途<asp:Button>

<asp:Button ID="btnContinue" runat="server" Text="Continue Shopping" PostBackUrl="~/Order.aspx" CssClass="btn" /> 

這意味着,我將redirectd到Order.aspx,而不是停留在原來的Cart.aspx。這裏是我的兩個問題:

  1. 我也有一個TextBoxCart.aspx
    當我點擊button時,TextBox的值將被重新發回到Order.aspx而不是原來的Cart.aspx。現在我想我們只能得到這個值,如果它回到Cart.aspx,其中包含這TextBox
    如果我想在新頁面上檢索該值,該怎麼辦?

  2. 如果沒有辦法檢索Cart.aspx任何輸入,爲什麼我們需要使用一項PostBackUrl?我們可以添加:

    Response.Redirect("~/Order.aspx")Cart.aspx.cs

+0

這是我認爲當你單擊該按鈕會發生什麼。點擊按鈕會產生一個Post事件,其中頁面上的表單將被髮回服務器,比如說Order.aspx頁面。您可以使用FormCollection來提取表單值和進程。 – Gururaj

回答

1

如果不指定入口PostBackUrl,該按鈕將提交的數據回到同一頁面,你的情況是cart.aspx

PostBackUrl的目的是一個橫跨發佈的數據。

如果您指定PostBackUrl="~/Order.aspx",您的數據將被髮回到您的Order.aspx頁面。在您的Order.aspx頁面中,您將能夠獲得您的TextBox(這是在購物車。使用ASPX)數據:

Page.PreviousPage.FindControl("TextBox1") 

您可以瞭解更多的https://msdn.microsoft.com/en-us/library/ms178139.aspx

0

根據我的理解(我可能是錯的,但是)。

  1. 網頁是無狀態的。一旦您離開/或執行回發,您的文本框的值就會消失。如果您需要此頁面中的值,請使用cookie,視圖狀態,會話或查詢字符串來檢索此值。

  2. 你不需要PostBackUrl,但如果你喜歡使用它,它取決於你。 是的,你可以在CodeBehind中做任何事情後使用Response.Redirect(「〜/ Order.aspx」)。 PostBackUrl將執行相同的操作,但不會執行重定向之前可能需要的代碼。