【问题标题】:Append HTML document string including tags ASP.NET CodeBehind附加 HTML 文档字符串,包括标签 ASP.NET CodeBehind
【发布时间】:2020-09-09 02:48:15
【问题描述】:

如何附加一个包含来自 c# 代码后面的脚本和标签的 html 文档

我尝试附加到一个 div,但由于脚本和样式标签无法加载,所以这不起作用。

到目前为止,这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    string id= Request.Params["id"] ?? "1";

    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));

        var content = new FormUrlEncodedContent(new Dictionary<string, string>() { "id",id });

        string uri = $"{SERVER_URL}/handlers/httpclient.ashx?method=fetchfile";

        using (HttpResponseMessage response = client.PostAsync(uri, content).Result)
        {
            response.EnsureSuccessStatusCode();
            string responseBody = response.Content.ReadAsStringAsync().Result;

            HtmlContent.InnerHtml = responseBody;
        }
    }
}
<div id="HtmlContent" runat="server"></div>

响应将返回一个完整的 html 文档字符串,例如 &lt;!DOCTYPE HTML .. &gt; &lt;html&gt; &lt;head&gt;...scripts &amp; styles&lt;/head&gt;&lt;body&gt;&lt;/body&gt;...

我正在尝试避免将文档保存为临时文件并从 iframe 中读取。

所以我的主要目标是在加载文档(服务器端)时附加该字符串。非常感谢任何帮助!

【问题讨论】:

  • 您想显示包含所有内联脚本和内联 css 的完整文档吗?所以 iframe 是获取它的一种方式。
  • @Homungus 我避免将字符串保存为客户端计算机上的文件。 iframe 需要查看文档的路径
  • 不,它不需要路径,您可以通过 javacript 编写内容,因此在您的情况下,启动脚本从后面的代码呈现,或者设置正确的 iframe 内容属性

标签: c# html webforms


【解决方案1】:

您可以从后面提到的代码中设置 iframe 的内容 here

例如

myIframe.Attributes["srcdoc"] = "responseBody";

或者您创建一个将内容插入 iframe 的启动脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多