我张贴值从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