【问题标题】:Purpose of PostBackUrl in <asp:Button><asp:Button> 中 PostBackUrl 的用途
【发布时间】:2017-11-02 14:22:51
【问题描述】:

使用PostBackUrl的目的是什么?
假设我在 Cart.aspx 中有一个 button

 <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

【问题讨论】:

  • 这就是我认为单击按钮时会发生的情况。单击按钮会产生一个 Post 事件,其中页面上的表单将被发布回服务器,比如说您的情况下的 Order.aspx 页面。您可以使用 FormCollection 来提取表单值和过程。

标签: c# asp.net .net postback


【解决方案1】:

如果不指定条目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了解更多信息

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2010-09-20
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2011-11-13
      相关资源
      最近更新 更多