2014-03-26 26 views
0

我必須將C#Web應用程序(App1,購物車)與另一個與付款服務(PaymentApp)集成的C#Web應用程序(App2 - 結帳頁面)集成。當PostBackUrl指向不同的服務器時執行按鈕OnClick事件

  • 無法更改App2或PaymentApp。
  • App2必須通過POST請求接收數據和至少一個文件。
  • PaymentApp只接受來自App2的POST。

所以,我在應用1添加一個按鈕,使其發佈到APP 2這樣的... ...

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

但是,當我這樣做的button1_Click(其中包含服務器端提交預處理)永遠不會被召喚。注意:服務器端處理不能轉移到客戶端,這就是它在服務器上的原因!

那麼,我怎樣才能將POST數據和文件發佈到App2,並且在發生POST之前仍然會在App1(或App1中的其他事件)中執行我的Button1_Click事件?

我讀過無數關於使用HttpWebRequest,WebClient,Server.Transfer,StringBuilder等的帖子,但沒有一個例子適合這種情況。我開始認爲這是無法完成的,但這太失敗了。結合StackOverflow的知識和威懾力,這一定是可能的。

回答

0

PostbackUrl屬性(http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.postbackurl%28v=vs.110%29.aspx),可以發佈到不同的頁面:

網頁的URL從當前頁面張貼到點擊按鈕控件時。默認值是一個空字符串(「」),它使頁面回傳給自己。

如果將其設置爲App2,表單將被提交到那裏,而不是將自己的網頁,這樣你自己的頁面上的處理程序將永遠不會被調用。

您可以在App1上的回發處理程序的服務器端發佈帖子到App2