【发布时间】:2011-09-26 00:02:00
【问题描述】:
你能在页面后面的代码中得到 PostBackUrl 的动作吗?
我想调用一个 onclick 函数,该函数执行一些数据库更新,然后将值作为隐藏字段回发到不同的 URL。
【问题讨论】:
标签: c# asp.net postbackurl
你能在页面后面的代码中得到 PostBackUrl 的动作吗?
我想调用一个 onclick 函数,该函数执行一些数据库更新,然后将值作为隐藏字段回发到不同的 URL。
【问题讨论】:
标签: c# asp.net postbackurl
我会使用 server.Transfer 但是,隐藏字段是非常不安全的。所以在它的位置(并且因为您已经在使用 server.transfer)为什么不使用 Context.Items?您可以通过它传输整个对象。例如: 这是在原始页面上 -
Context.Items.Add("Contact", contactID)
Server.Transfer("~/ViewContact.aspx")
在你做的结果页面上 -
Dim contactID = Context.Items.Item("Contact").ToString()
使用 server.transfer 时必须非常小心,因为传输发生在服务器中,并且永远不会通知浏览器该页面与其请求的页面不同。如果您没有预料到,这可能会在您尝试回发时给您带来麻烦。
实际上我刚刚写了一篇关于这件事的博客……
【讨论】:
您创建一个简单的白页,其中包含您想回发的所有输入,在表单内,并使用您回发的 javascript。
问题是当用户没有启用 javascript 时,在这种情况下,在这个白色的简单页面中,您包含一条消息,告诉用户此页面会在几秒钟内自动重定向到另一个页面,或单击此处现在重定向。
这个简单的白页,只是点击后对普通页面的覆盖。
您也可以阅读这篇与post form data to another URL 类似的技巧的帖子,其中包含源代码和示例。
还有很多其他方法可以pass values between asp.net web pages。
当您有一个支付网关提供商时,通常会出现这种情况,并且您从您的页面中获胜以转移到该网关 - 例如贝宝。另一种解决方案是,有一个页面,其中包含您想要发送到下一页的摘要,并且在该页面中您包含所有数据、摘要和返回网关的正常帖子。
我需要运行一个函数(在代码中 后面)单击按钮时。一次 该功能已完成,然后我想要 后面的代码发布到不同的 具有隐藏字段值的页面
当您的功能完成后,您无法将帖子移回另一页。您可以做的是向您的页面呈现一个简单的表单,其中您的数据作为您需要发送到其他页面的隐藏输入,并自动发布您已呈现的这个新表单。
protected void Button1_Click(object sender, EventArgs e)
{
// ...you calculations here...
StringBuilder sbRenderOnMe = new StringBuilder();
// the form and the data
sbRenderOnMe.AppendFormat(
"<html><body><form action=\"http://www.google.com\" method=\"post\" name=\"form1\">"
+ "<input value=\"{0}\" id=\"lst-Send1\" name=\"Send1\" type=\"hidden\" />"
+ "<input type=\"submit\" name=\"Button1\" value=\"press me if not automatically redirect\" id=\"Button1\" />"
+ "</form>"
, 1100
);
// the auto submit
sbRenderOnMe.AppendFormat("<script>document.form1.submit();</script>");
sbRenderOnMe.AppendFormat("</body></html>");
Response.Write(sbRenderOnMe.ToString());
Response.End();
}
唯一一个有小闪烁并且没有javascript就不能自动工作的减号,需要告诉用户按下按钮。
【讨论】:
完成原始代码隐藏事件后,您可以使用Server.Transfer 并保留表单和查询字符串变量。
Server.Transfer("OtherPage.aspx", true);
【讨论】:
我遇到过这个解决方案
<asp:LinkButton ID="CartOrderButton" runat="server" PostBackUrl="order.aspx" onclick="CartOrderButton_Click">Order Me</asp:LinkButton>
【讨论】: