<asp:Button> 中 PostBackUrl 的用途

Purpose of PostBackUrl in <asp:Button>

使用 PostBackUrl 的目的是什么?
假设我有一个 button 位于 Cart.aspx:

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

这意味着我将被重定向到 Order.aspx,而不是停留在原来的 Cart.aspx。这是我的两个问题:

  1. 我在Cart.aspx中也有一个TextBox.
    当我点击 button 时,TextBox 的值将回传到 Order.aspx 而不是原来的 Cart.aspx。现在我想我们只能得到这个值,如果它回发到 Cart.aspx,其中包含这个 TextBox.
    如果我想在新页面上检索这个值怎么办?

  2. 如果无法检索 Cart.aspx 上的任何输入,为什么我们需要使用 PostBackUrl?我们可以添加:

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

根据我的理解(我可能是错的但是)。

  1. 网页是无状态的。一旦您离开/或执行回发,您的文本框的值就会消失。如果您需要此页面的值,请使用 cookie、视图状态、会话或查询字符串来检索此 value/s.

  2. 您不需要 PostBackUrl,但如果您喜欢使用它,则由您决定。 是的,Response.Redirect("~/Order.aspx") 可以在您在 CodeBehind 中完成您需要做的任何事情后使用。 PostBackUrl 会执行相同的操作,但不会执行重定向前可能需要的代码。

如果您不指定条目 PostBackUrl,该按钮会将数据提交回同一页面,在您的情况下是 cart.aspx .

PostBackUrl 的目的是跨页发布 数据。

如果您指定 PostBackUrl="~/Order.aspx",您的数据将回传到您的 Order.aspx 页面。在您的 Order.aspx 页面中,您将能够获得您的 TextBox(在 cart.aspx ) 数据使用:

Page.PreviousPage.FindControl("TextBox1")

您可以在 https://msdn.microsoft.com/en-us/library/ms178139.aspx

了解更多信息