我開發了一個處理在線支付的組件。在特定時間點,用戶必須重定向到選定的收單機構網站進行身份驗證。收購方本身建議應該有一個網頁來完成它。如下所示,如何使用HttpResponse或其他內容創建組件的動態http響應
<!--TakeOff.aspx-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>@</title>
<script type="text/javascript">
function Go() {
form1.submit();
}
</script>
</head>
<body onload="Go();">
<form id="form1" runat="server" method="post" action="https://acquirer/...">
<div>
<asp:HiddenField ID="MID" runat="server" />
<asp:HiddenField ID="Amount" runat="server" />
<asp:HiddenField ID="ResNum" runat="server" />
<asp:HiddenField ID="RedirectURL" runat="server" />
</div>
</form>
</body>
</html>
此頁面重定向用戶並將需要的參數發佈到收單方的網站。在此頁面之前,還有另一個帶有付款按鈕的頁面(例如)。在付款按鈕的點擊事件中,我的組件被實例化並且完成了所需的計算。一些諸如以下,
protected void btnPayment_Click(object sender, EventArgs e)
{
try
{
var paymentProcessor = new NS.PaymentProcessor(/*required arguments*/);
/*...*/
NS.Result result = paymentProcessor.Calc();
Session.Add("PaymentProcessResult", result);
Response.Redirect("TakeOff.aspx");
}
catch (Exception p)
{
throw p;
}
}
什麼,我要做的就是通過支付處理器組件生成[TakeOff.aspx]在運行時頁面而不是靜態頁面(我的意思是aspx頁面在開發階段產生)。原因是我們可能有不同的收購方,每個收購方都需要發佈自己的論點。因此,如果付款處理器組件在運行時生成aspx甚至html頁面,我們不需要重新編譯和重新部署Web應用程序。
我的問題是,我不知道如何在運行時生成aspx頁面。我不是ASP.NET大師,並且我使用HttpResponse所做的所有努力都是徒勞的,因爲原始頁面不會將控件傳遞到生成的頁面。
任何幫助,將不勝感激。 謝謝
尊敬的卡萊布, 非常感謝您的關注和您提供的解決方案, 請您告訴我爲什麼在運行時生成aspx或html頁不是一個好習慣?請考慮可能生成一個包含表單和隱藏字段的HTML頁面(使用HttpResponse或其他組件),並且HTML頁面被動態地創建並輸出到客戶端,然後表單提交併且一切似乎都正常。問題是來自原始頁面的控制不會傳輸到生成的html頁面。你有什麼主意嗎? (再次感謝很多) – anonim 2010-05-14 16:12:36