0

我必须将 C# Web 应用程序(App1,购物车)与另一个与支付服务 (PaymentApp) 集成的 C# Web 应用程序(App2 - 结帐页面)集成。

  • App2 或 PaymentApp 都不能更改。
  • App2 必须通过 POST 请求接收数据和至少一个文件。
  • PaymentApp 只接受来自 App2 的 POST。

所以,我在 App1 中添加了一个按钮,让它像这样发布到 App2 ......

<asp:Button ID="Button1" runat="server" PostBackUrl="App2" onclick="Button1_Click"/>

但是当我这样做时 Button1_Click (包含服务器端预提交处理)永远不会被调用。注意:服务器端处理不能转移到客户端,这就是它在服务器上的原因!

那么,我怎样才能将数据和文件都发布到 App2 并且仍然让我在 App1 中的 Button1_Click 事件(或 App1 中的其他事件)在 POST 发生之前执行?

我已经阅读了无数关于使用 HttpWebRequest、WebClient、Server.Transfer、StringBuilder 等的帖子,但没有一个示例适合这种情况。我开始认为这是不可能的,但这太失败主义了。结合 StackOverflow 的知识和智慧,这一定是可能的。

4

1 回答 1

0

PostbackUrl属性 ( http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.postbackurl%28v=vs.110%29.aspx ) 允许您发布到不同的页面:

单击 Button 控件时要从当前页面发布到的网页的 URL。默认值为空字符串 (""),它会导致页面回发到自身。

如果您将此设置为App2,表单将被提交到那里而不是您自己的页面,因此您自己页面上的处理程序将永远不会被调用。

您可以改为从 App1 上的回发处理程序的服务器端向App2发布帖子。

于 2014-11-11T14:07:09.207 回答