【问题标题】:Submit Page with just Code Behind Using C#使用 C# 提交仅包含代码的页面
【发布时间】:2011-11-25 22:36:46
【问题描述】:

我正在创建一个回调页面,该页面从支付网关接收信息,然后更新数据库。然后我希望它自动“提交”到“谢谢”页面,将订单号作为隐藏字段传递。

我已经查看了 httpwebrequest,但我无法通过这个解决方案看到如果这是正确的放置方式,它将如何“自我发布”。

任何帮助 ho 实现这一点将不胜感激。

【问题讨论】:

  • 为什么回调页不能是感谢页?
  • 为什么不让回调页面直接重定向到另一个做感谢的页面,或者正如blzm所说,回调页面可以打印感谢。
  • 支付网关调用回调页面,所以它仍然在它的域和ssl下。拥有第二页允许更大的灵活性。我可以重定向,但是我必须包含我不想这样做的查询字符串参数。但我愿意接受任何建议!
  • @ComfortablyNumb, this answer 如果您只是创建一个 POST 表单而不是一个 GET 表单(我认为目前是这样,取决于浏览器的默认设置),则不需要查询字符串参数。跨度>

标签: c# asp.net httpwebrequest


【解决方案1】:

那么,为什么不使用那个接收页面来显示您需要的内容,并省去再多一页的麻烦呢?

如果你仍然想要第二页来显示结果,在处理结束时你可以写:

Session["job-id"] = "12345679";
Response.Redirect("my2ndpage.aspx");

在第二页中,您只需将 session 文本分配给您将拥有的控件

HiddenField1.Value = Session["job-id"].ToString();

【讨论】:

  • 第二页的原因是它不受支付网关的控制,这通常使生活更轻松。第一个页面基本上位于支付网关调用的不同域中(尽管我们托管它)。
【解决方案2】:

如果回调页面是常规的 ASP.NET,您可以使用服务器端 Response.RedirectServer.Execute

如果没有,您可以在 javascript 中进行客户端发布:

<form action="yourThankYouUrl.aspx">
    <input type="hidden" name="callbackValue" value="yourCallbackValue" />
</form>
<script type="text/javascript">
    document.forms[0].submit();
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2019-10-31
    • 2017-07-05
    • 2011-07-27
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多