【问题标题】:How to display HTML tags properly from a text file using C#?如何使用 C# 从文本文件中正确显示 HTML 标签?
【发布时间】:2012-06-21 08:59:20
【问题描述】:

所以现在我在 C# 中使用这样的东西:

Response.Write(Server.HtmlEncode(line));

这将从文本文件中抓取一行并将内容显示在屏幕上 - 它可以工作。我的目标是让文本文件中的行显示如下内容(文本文件行中的 HTML 格式):

<a href='http://www.url.com' target='_blank'>Link</a><br><br><!--info-->

不幸的是,由于某种原因,&amp;lt; 和 &amp;gt; 在转换为 HTML 之前被转换为 &amp;lt; 和 &amp;gt;,这会将所有 HTML 代码公开为文本并且根本不起作用。我曾尝试查看 WebBrowser 控件和其他东西,但我不明白我应该做什么。例如,我从一个网站尝试过这个:

WebBrowser browser = new WebBrowser();
browser.Navigate("about:blank");
browser.Document.Write(Server.HtmlEncode(line));

...但是没有用。我正在寻找一些非常简单的东西,如果可能的话,我可以模仿一个清晰的例子。谢谢!我也会确保选择一个答案。

【问题讨论】:

    标签: c# asp.net html


    【解决方案1】:

    除了您将&amp;lt; 和&gt; 括号明确编码到&amp;lt; 和它的对应部分之外,我没有看到任何错误。

    删除Server.HtmlEncode() 部分,它应该可以工作。

    Response.Write(line);
    

    Server.HtmlEncode() 会将所有内容显式编码为所谓的“实体”,即那些&amp;lt; 代码。它通常用于保护您自己免受不应修改您网站行为的用户输入的原始字符串的影响。

    【讨论】:

    • 这确实成功了。出于安全原因,我认为 HtmlEncode 部分是必要的。另外,我来自 PHP 背景,所以很多这种清理/转换数据的东西对我来说是新的。谢谢。当我被允许时会选择这个作为答案。
    • 如果您投放到网站上的内容是用户生成的,并且不应该改变您网站的行为,那么这是必要的。当您写入响应的文本来自未知来源时,请使用HtmlEncode,以保护自己免受跨站点脚本攻击等攻击。
    猜你喜欢
    • 2021-11-20
    • 2021-10-01
    • 1970-01-01
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多