Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C以编程方式操作PostBackUrl#_C#_Asp.net_Postbackurl - Fatal编程技术网

C# 使用C以编程方式操作PostBackUrl#

C# 使用C以编程方式操作PostBackUrl#,c#,asp.net,postbackurl,C#,Asp.net,Postbackurl,你能在一个页面的代码中获得PostBackUrl的操作吗 我想调用一个onclick函数,该函数执行一些数据库更新,然后将值作为隐藏字段发回另一个URL 您创建了一个简单的白色页面,其中包含所有您想要回发的输入,在表单中,并使用javascript进行回发 问题是当用户没有启用javascript时,在这种情况下,在这个白色的简单页面中,您包含一条消息,告诉用户该页面在几秒钟内自动重定向到另一个页面,或者单击此处立即重定向 这个简单的白色页面,只是在点击后覆盖了普通页面 你也可以阅读这篇文章,这

你能在一个页面的代码中获得PostBackUrl的操作吗


我想调用一个onclick函数,该函数执行一些数据库更新,然后将值作为隐藏字段发回另一个URL

您创建了一个简单的白色页面,其中包含所有您想要回发的输入,在表单中,并使用javascript进行回发

问题是当用户没有启用javascript时,在这种情况下,在这个白色的简单页面中,您包含一条消息,告诉用户该页面在几秒钟内自动重定向到另一个页面,或者单击此处立即重定向

这个简单的白色页面,只是在点击后覆盖了普通页面

你也可以阅读这篇文章,这是一个与源代码和示例类似的技巧

还有很多其他的方法来解决这个问题

通常情况下,当您有一个支付网关提供商,并且您从页面中获得了转到该网关(例如paypal)的信息时,就会出现这种情况。另一个解决方案是,在一个页面中包含要发送到下一个页面的内容摘要,在该页面中包含所有数据,以及一个摘要和一篇返回网关的正常帖子

我需要运行一个函数(在代码中) 单击某个按钮时。一旦 该功能完成后,我希望 要发布到其他站点的代码 具有hiddenfield值的页面

功能完成后,您不能将post移回另一页。您可以做的是向页面呈现一个简单表单,将数据作为隐藏输入发送到另一个页面,并自动发布已呈现的新表单

例子
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
//…你在这里。。。
StringBuilder sbrenderName=新StringBuilder();
//表格和数据
sbRenderOnMe.AppendFormat(
""
+ ""
+ ""
+ ""
, 1100
);
//自动提交
sbRenderOnMe.AppendFormat(“document.form1.submit();”;
sbRenderOnMe.AppendFormat(“”);
Response.Write(sbRenderOnMe.ToString());
Response.End();
}

只有一个负号会有小的闪烁,并且在没有javascript的情况下不会自动工作,它需要告诉用户按下按钮。

完成事件背后的原始代码后,您可以使用并保留表单和查询字符串变量

Server.Transfer("OtherPage.aspx", true);

我会使用server.Transfer,但是,隐藏字段是绝对不安全的。所以在它的位置上(既然您已经在使用server.transfer),为什么不使用Context.Items呢?可以通过它传输整个对象。例如: 这在原始页面上-

Context.Items.Add("Contact", contactID)
        Server.Transfer("~/ViewContact.aspx")
在生成的页面上执行以下操作:-

Dim contactID = Context.Items.Item("Contact").ToString()
在使用server.transfer时必须非常小心,因为传输发生在服务器中,并且永远不要通知浏览器页面与其请求的页面不同。如果您不希望回发,那么当您尝试回发时,这可能会给您带来麻烦

事实上我刚刚写了一篇关于这件事的博客


我遇到了这个解决方案

<asp:LinkButton ID="CartOrderButton" runat="server" PostBackUrl="order.aspx" onclick="CartOrderButton_Click">Order Me</asp:LinkButton>
命令我

Server.Transfer不会发送@ComfortablyNumb要求的新回发值。使用新的帖子数据请求不同的url。当您使用“Server.Transfer”时,Server.TransferRequest.Form集合将保留原始post中的值。你可以通过设置一个简单的测试项目来检查这一点。是的,有原始的帖子,但这里需要发送一个不同的帖子!谢谢你,但也许我还没说清楚。不管Javascript如何,我都需要在单击按钮时运行一个函数(在代码隐藏中)。一旦该函数完成,我希望后面的代码使用hiddenfield值发布到另一个页面。(像PostBackUrl)基本上,我尝试提交购物车内容,但在页面转到订单页面之前运行我的重新计算购物车功能。我对C#相当陌生,老实说,我不理解所提供的例子。@ComfortablyNumb正是我在这里向你展示的。只要再读一遍就可以理解我的提议(和我使用的)@ComfortablyNumb我做了一些代码示例,你看到了吗?我已经测试了它并开始工作,得到了谷歌的错误页面:)这是一个好主意,但url仍然是一样的(?)-我真的很想看到它“移动”到下一页。阅读你的原始文本,你真的不想回发,你只是在发布到一个新页面。所以本质上,用户填写表单,您执行数据库操作。。。然后(使用该数据)发布到新页面。如果你不介意的话,我只会使用3.5SP1以来提供的路由功能。即使是安全的,您也可以始终加密数据。小心使用ViewState,它已被黑客攻击。如果您只是发布到新页面。。只需使用响应。重定向,然后使用页面历史记录。然后可以从上一页获取字段的句柄。
<asp:LinkButton ID="CartOrderButton" runat="server" PostBackUrl="order.aspx" onclick="CartOrderButton_Click">Order Me</asp:LinkButton>