使用PostBackUrl
的目的是什么?
我们假设我有一个button
位于 Cart.aspx 中:
<asp:Button ID="btnContinue" runat="server" Text="Continue Shopping" PostBackUrl="~/Order.aspx" CssClass="btn" />
这意味着我将被重定向到 Order.aspx ,而不是留在原来的 Cart.aspx 。以下是我的两个问题:
我在 Cart.aspx 中也有TextBox
。
当我点击button
时,TextBox
的值将发回 Order.aspx ,而不是原始 Cart.aspx 。现在我认为只有将它发回 Cart.aspx ,我们才能获得此值,其中包含此TextBox
。
如果我想在新页面上检索此值,该怎么办?
如果无法检索 Cart.aspx 上的任何输入,为什么我们需要使用 PostBackUrl ?我们可以添加:
Response.Redirect("~/Order.aspx")
到 Cart.aspx.cs ?
答案 0 :(得分:2)
如果您未指定条目PostBackUrl
,该按钮会将数据提交回同一页面,在您的情况下,它是 cart.aspx 。
PostBackUrl
的目的是跨页面发布数据。
如果您指定PostBackUrl="~/Order.aspx"
,您的数据将会发回 Order.aspx 页面。在 Order.aspx 页面中,您将能够使用以下内容获取TextBox
(位于 cart.aspx 中)数据:
Page.PreviousPage.FindControl("TextBox1")
了解详情
答案 1 :(得分:0)
基于我的理解(我可能错了但是)。
网页是无国籍的。离开/或执行回发后,文本框的值将消失。如果您需要此页面中的值,请使用cookie,viewstate,sessions或查询字符串以便能够检索此值。
您不需要PostBackUrl,但如果您更喜欢使用它,则由您自己决定。 是的,在您执行CodeBehind中需要执行的任何操作后,可以使用Response.Redirect(“〜/ Order.aspx”)。 PostBackUrl将执行相同的操作,但不会执行重定向之前可能需要的代码。