在控制器操作中,我使用WebRequest手動將表單發送到遠程URL。我成功地收到了一個包含要顯示的html頁面的WebResponse。我想將該響應「粘貼」爲操作的響應(類型爲HttpResponseBase)。一個動作通常會返回一個ActionResult,那麼如何結束我的控制器操作,以便WebResponse成爲結果?WebResponse到HttpResponseBase。可能嗎?
注意:瀏覽器中的Url也必須成爲響應的URL。
更新:這是目標。這是在PayPal結帳頁面上。我想要一個簡單的結帳按鈕鏈接到我的某個操作,而不是在所有購物車隱藏字段和結算提交按鈕的窗體中顯示。在這個動作中,我將使用表單準備WebRequest並將其發送到PayPal。在一個動作中這樣做也允許我將未激活的訂單存儲在數據庫表中,這樣當訂單確認到達時,我可以將其與存儲的訂單進行比較並將其激活。
解決方案:感謝那些誰回答指出,這將不可能重定向與POST。看來,我沒有義務通過POST重定向到PayPal。相反,我可以在查詢字符串中構建一個包含所有購物車數據的URL並重定向到它。從控制器操作方法執行它仍然允許我將掛起的訂單存儲在數據庫中。
感謝
謝謝。問題是內容不夠(請參閱上面的更新)。結果還包含標題和可能的cookie。如果我只是設置內容,所有這些數據將不會被使用。最終結果是瀏覽器中的Url不正確(它應該是https:// ... paypal .../....)。現在我正在使用PayPal沙盒進行測試。即使我在同一瀏覽器中登錄沙箱,貝寶的迴應是我沒有登錄到沙箱。 – 2009-11-11 15:46:13
我不熟悉貝寶,但爲什麼你使用WebRequest來做到這一點?我會假設他們有一個API或其他東西。你應該看看。至於我的解決方案,您可以輕鬆將WebResponse中的Cookie和其他標題複製到您的操作的響應中。 – Matthew 2009-11-11 15:57:32