2017-06-01 36 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将执行相同的操作,但不会执行重定向之前可能需要的代码。