<asp:button>中PostBackUrl的用途

时间:2017-06-01 12:24:40

标签: c# asp.net .net postback

使用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

2 个答案:

答案 0 :(得分:2)

如果您未指定条目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

了解详情

答案 1 :(得分:0)

基于我的理解(我可能错了但是)。

  1. 网页是无国籍的。离开/或执行回发后,文本框的值将消失。如果您需要此页面中的值,请使用cookie,viewstate,sessions或查询字符串以便能够检索此值。

  2. 您不需要PostBackUrl,但如果您更喜欢使用它,则由您自己决定。 是的,在您执行CodeBehind中需要执行的任何操作后,可以使用Response.Redirect(“〜/ Order.aspx”)。 PostBackUrl将执行相同的操作,但不会执行重定向之前可能需要的代码。