如何使用ASP.NET MVC将网页加载到iframe中?

我有一个外部网页,我需要使用HTTP Post访问,并包含在iframe中。 该网页有一组示例访问该页面的说明,如下所示,但它们采用Windows Form解决方案; 我正在使用ASP.NET MVC。

如何将这个以WebBrowser为中心的解决方案转换为可以成功发布到外部网站的内容,并将结果加载到iframe中?

private WebBrowser wb_inline = null; private void Submit_Click(object sender, EventArgs e) { string url = "http://www.example.com"; string setupParameters = "account_token=abc123"; ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, ssl) => true; ASCIIEncoding encoding = new ASCIIEncoding(); var postData = setupParameters; if (null == wb_inline) { wb_inline = new WebBrowser(this); wb_inline.Location = new System.Drawing.Point(100, 277); wb_inline.Size = new System.Drawing.Size(675, 650); } Controls.Add(wb_inline); wb_inline.Visible = true; string AdditionalHeaders = "Content-Type: application/json"; byte[] data = encoding.GetBytes(postData); wb_inline.Navigate(payProsUrl, "", data, AdditionalHeaders); } 

有没有办法做这样的事情,使用HttpWebResponse(或其他一些控件),并将其包含在iframe中? 我一直在努力适应这一点,但还没有成功。

根据w3schools :

An inline frame is used to embed another document within the current HTML document.

也就是说, iframe用于通过给定的URL加载页面内容并将其呈现给用户进行交互。 之后,您无法控制用户对加载页面的操作(他可以单击链接,发布表单等)。 您无法向iframe发送HTTP请求,因为它只是显示另一个页面的“窗口”,并且不支持复杂的方案。

还需要考虑的另一件事是,您加载的网页可以防止嵌入到iframe

事实上,有一些选择如何实现你想要的。 对于使用iframe的纯服务器端解决方案,您应该执行以下操作:

1.创建一个动作方法,该方法将对您需要的URL执行HTTP POST请求并获取结果以进行演示:

 public ActionResult PostAndShow() { //do the posting string result = requestStream.ReadToEnd(); //you can have similar code to fetch the server response return Content(result); } 

2.在您的网页中,您将创建一个指向您的操作PostAndShowiframe ,并将向第三方服务器显示您的HTTP POST请求的结果。