我張貼值從ASP.NET網站到一個完全不同的網站(實際上是Paypal)。我通過將頁面返回給具有所有隱藏表單輸入的用戶,然後自動提交表單的Javascript函數來完成此操作。發佈到另一個頁面的網站工作,但在這個過程中顯示一個空白頁面
這個過程應該是無縫的,但是空白頁在顯示的幾秒鐘內是明顯的。用戶只需點擊ASP.NET頁面上的按鈕,然後重定向到PayPal。但是我在中間注入了這個空白頁面來發布中間變量(變量如結算信息,訂單項目等)。空白頁太明顯了,希望能有更好的方式來實現這一目標,或者希望讓這個過程更加無縫。
這裏是方法我使用:
public static void PostToRemote(string url, Dictionary<string, string> inputs)
{
if (String.IsNullOrEmpty(url))
return;
HttpContext context = HttpContext.Current;
//CREATE UNIQUE FORM NAME
string formName = "remoteform1";
//ERASE ENTIRE RENDER OF CURRENT PAGE
context.Response.Clear();
//OUTPUT SINGLE FORM TO POST DATA
context.Response.Write("<html><head></head>");
//ON LOAD, PAGE WILL POST FORM TO NEW URL
context.Response.Write(String.Format("<body onload=\"document.{0}.submit()\">", formName));
context.Response.Write(String.Format("<form name=\"{0}\" method=\"{1}\" action=\"{2}\" >", formName, "post", url));
//ADD PARAMETERS TO PAGE TO POST
foreach (var item in inputs)
{
context.Response.Write(String.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", item.Key, item.Value));
}
context.Response.Write("</form>");
context.Response.Write("</body></html>");
context.Response.End();
}
任何建議,使這個更完美或更愉快的用戶?謝謝!
爲什麼不只是用頁面上的按鈕發佈該表單? – Pointy 2010-10-23 14:54:01