gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:46:07 24 4
gpt4 key购买 nike

我有一个外部网页,我需要使用 HTTP Post 访问该网页并将其包含在 iframe 中。该网页有一组访问该页面的示例说明,如下所列,但它们采用 Windows 窗体解决方案;我正在使用 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 :

内联框架用于在当前 HTML 文档中嵌入另一个文档。

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

另一件需要考虑的事情是,您正在加载的网页可以避免嵌入到 iframe 中。

事实上,您可以通过一些选项实现您想要的效果。对于使用 iframe 的纯服务器端解决方案,您应该执行以下操作:

1.创建一个 action 方法,它将对您需要的 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.在您的网页中,您将创建一个iframe,它将指向您的操作PostAndShow,并将向第三方服务器显示您的HTTP POST 请求的结果。

<iframe src="@Url.Action("PostAndShow", "My")" width="400" height="300"></iframe>

关于c# - 如何使用 ASP.NET MVC 将网页加载到 iframe 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27387345/

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