gpt4 book ai didi

c# - 发布到另一个页面网站有效,但在此过程中显示空白页面

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:00 24 4
gpt4 key购买 nike

我正在将值从一个 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();
}

有什么建议可以让用户更无缝或更愉快吗?谢谢!

最佳答案

您可以做的不是将 paypal 表单写入响应流,而是创建一个单独的 asp.net 页面,并在该页面内使用 asp.net 转发器或类似控件写入 paypal 表单信息。为写入的表单命名,以便您可以通过 javascript 访问它 - 出于本示例的目的,我们假设您将表单命名为“paypal”(id="paypal")。见下文:

接下来放置一个带有动画 gif 的图像标签,某种进度微调器。好的,现在这是重要的部分:向页面添加一个小的 javacript 函数,该函数将负责将 paypal 表单发布到 paypal 服务器。请参阅以下示例:

function submitform()
{
document.forms["paypal"].submit();
}

所以现在您所要做的就是从页面的 body 标记中调用这个“submitform()”函数,如下所示:

<body onload="submitform()">

这就是整个事情的样子。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body onload="submitform()">
<div style="text-align: center;">
<h1>
Redirecting to PayPal</h1>
<img src="http://www2.lionair.co.id/assets/imgs/ajax-loader.gif" />
</div>
<form id="form1" runat="server">
<!--This is where you write out the paypal form data - use a repeater or create a custom control-->
</form>
<script type="text/javascript">
function submitform()
{
document.forms["paypal"].submit();
}
</script>
</body>
</html>

当您运行此页面时,首先加载的是微调器图像,然后 javascript 将值发布到 paypal,从而为您提供所需的效果。

希望这对您有所帮助。

尽情享受吧!

关于c# - 发布到另一个页面网站有效,但在此过程中显示空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com