如何以 Web 表单加载本地 html 页面

How to load local html page in web form

我希望在我的 Web 表单中加载本地 html 页面。 我使用的代码看起来像

Response.Redirect("C:\Player\Results\xyz.html", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();

我知道有人问过类似的问题,但 none 帮助了我。 如果有人可以让我知道哪里出错了,那将非常有帮助

谢谢

重定向到将以静态内容响应的 http / https url 是一回事,但没有浏览器会加载本地文件。如果浏览器这样做,将会带来巨大的安全风险。

@m_beta您正在使用物理路径进行重定向。这将需要您在移动代码位置时更改代码。请改用相对路径。

它会像下面这样。您需要根据您所在的位置更正路径。

Response.Redirect("~/admin/paths.aspx", false);

您也可以像这样添加重定向

如果是本地主机,请检查您的本地主机值,如下所示添加

Response.Redirect("http://localhost:51043/xyz.html"); 

实时站点

Response.Redirect("http://xyzdotcom/xyz.html"); 

一个简单的方法可能是:

  var htmlContent = System.IO.File.ReadAllText(@"C:\Player\Results\xyz.html");
  Response.Write(htmlContent);

使用 IFrame 并使用它的 SRC 属性 调用您的 html 页面

有很多方法可以做到,但我想提一下对我有用的 2 个

在这种方法中,响应将被重定向到您正在传递的页面。

Response.Redirect("~/Results/xyz.html", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();

在下面提到的这个方法中,您希望呈现的 html 页面的内容将被读取,然后使用 OutputStream 传递。

var encoding = new System.Text.UTF8Encoding();
var htm = System.IO.File.ReadAllText(Server.MapPath("/Results/Html/") + "xyz.html", encoding);
byte[] data = encoding.GetBytes(htm);
Response.OutputStream.Write(data, 0, data.Length);
Response.OutputStream.Flush();

感谢所有在这里做出贡献的人!