2011-09-07 103 views
1

我需要使用表单准备ASP.NET网站,在代码后面填写表单,然后将表单提交到外部网站。以编程方式发布HTML表单并显示回复

例如:用户打开www.myshop.com/pay.aspx,他不必填写任何内容,因为我在代码后面填写表单值,然后用户被自动重定向到外部网站www.onlinepayments.com(与表单数据在POST中发送)。

我能够使它与常规的隐藏窗体和提交表单的JavaScript工作,但我不喜欢这种方式(用户可以看到HTML)。

于是我就用WebRequest类在后面的代码像这样的回答:How do you programmatically fill in a form and 'POST' a web page?

然而,在这种应答响应是字符串(目标网站HTML)。我能用这个字符串做什么?我希望我的用户看到目标网站(conent和URL),就像它会在常规的HTML POST中发生一样。

+0

您是否与您的在线支付提供商联系?有些服务器到服务器API,并会给你一个URL重定向到;有些将允许购物车在提交之前签署。 –

+0

@Rowland Shaw - 没关系 - 在线支付只是一个例子 – jlp

+0

所以你的意思是你希望他们在一个aspx页面上填写表单,然后当他们点击Submit时,你发送表单值到另一个aspx页面? – LoveMeSomeCode

回答

0

您会收到响应HTML作为字符串 - 你可以用任何你想要做的(包括渲染HTML作为对你的网页,或者您也可以自定义使其等等......前HTML)

+0

,但然后用户将看到我的URL,而不是目标网站的URL和他们的CSS路径可能是相对等我想用户'在'该网站,因为它发生在普通的职位(该浏览器) – jlp

0

这取决于目标网站的工作方式。如果生成的页面是静态的,那么在编程完成POST之后,您可以简单地使用Response.Redirect用户。如果该页面基于某个会话或cookie值显示,则无法真正将其重定向到那里。

0

好的,在这种情况下,你可以做的是改变你的FORM标签的动作参数。这将发送POST请求到其中包含所有表单变量的其他表单。新表单将挖掘这些POST变量并根据需要做它需要的内容