如何在网站中显示文本(Html格式)(Asp.net C#)
我有一个文本编辑器,将格式应用于文本后,单击按钮时显示文本。我希望在文本编辑器中显示所有格式的文本。如何在网站中显示文本(Html格式)(Asp.net C#)
lbl_Subject.Text = Server.HtmlEncode(formattedtext);
但它不会显示在,而不是应用它的显示格式为
<p> This is Para 1</p> <p> this is Para 2</p> <p> <strong>this is bold</strong></p>
我怎么可以在文本编辑器应用
更新 我尝试了所有的格式显示文本用文字
结果是
<p> This is Para 1</p> <p> this is Para 2</p> <p> <strong>this is bold</strong></p>
使用div代替标签。
div1.InnerHtml=formattedtext;
您可能想要使用文字控件而不是标签。这应该将您的原始HTML字符串输出并按页面上的要求输出。
ASIDE:显示HTML时要非常小心。添加恶意脚本并不难,例如,将从查看的页面运行恶意脚本。
HtmlEncode确保了文本正确地显示在浏览器和不是由浏览器HTML解释。
尝试删除HtmlEncode或使用HtmlDecode。
`Server.HtmlDecode(Server.HtmlEncode(formattedtext))`似乎有点傻,但也许这只是我。 – 2011-12-14 16:40:22
如果您希望文本在浏览器中呈现为html,那么您为什么使用HtmlEncoding呢? HtmlEncode旨在将可能包含html符号的代码编码并对其进行编码,以便将这些符号打印为原始文本。我会说你呈现的代码的行为完全像它应该预期的那样。如果你想要你的代码输出html来渲染,那么它应该是一个文字,它应该只是文本。
lit_Subject.Text = formattedtext;
看看AntiXssLibrary(可以通过nuget找到)。
特别是在Sanitizer类。它需要一个字符串并从中删除与安全相关的所有内容。
它也会改变css类的名字,所以你可能需要修改结果来恢复类名。但它绝对允许您在您的页面上安全地获取RAW HTML,而无需冒着XSS攻击的风险。
您可以使用此代码:Html.Raw(formattedtext)
+1请指定Mode =“Encode”。 – adatapost 2011-12-14 11:17:08