C#HTML字符串显示

本文关键字:显示 字符串 C#HTML | 更新日期: 2023-09-27 18:21:09

我在MVC3中制作一个应用程序,我在数据库中以这种格式存储一个字符串

 <a href='path'>Text</a> Happy

该字段保存正确,但我必须在网页上显示它与一样的超链接

文本快乐

但目前它表现得像

 <a href='path'>Text</a> Happy

如何在网页上将此字符串呈现为HTML?

C#HTML字符串显示

如果您使用Razor模板引擎:

@Html.Raw(mystring)

如果您使用Razor,您可以根据Phil Haack的快速参考使用@Html.Raw()

最好在将HTML存储到数据库之前对其进行编码。。如果您使用的是.Net Framework 4,请尝试此

String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);

参见msdn

否则使用反xss库

它的工作原理很神奇,而且很容易实现。。Un-Encoded不仅很危险,因为它会导致XSS攻击,而且还会导致在html fornt页面上渲染的问题。

希望能有所帮助。。

我真的建议不要这样做,因为很难防范脚本注入问题。

话虽如此,如果你认为这是可以管理的,你应该能够使用@Html.Raw在不转义的情况下呈现文本。

如果您没有使用剃须刀,

string text = "<a href='path'>Text</a> Happy";

那么你想要的是<%= text %>,而不是<%: text %>

正如其他人所说,由于HTML注入,这并不是一个很好的实践,但似乎HTML注入是您的意图。