我正在ASP.NET中编写一个小型模板系统,以允许用户添加内容.例如,用户可以输入字符串(变量类型为字符串).
topHeader[x] = "They think it's all over. It is now!";
但是,需要进行一项更改是在此内容中添加一些基本HTML标签的功能,因此可以进行以下操作
topHeader[x] = "They think it's all over. <strong>It is now!</strong>";
要么
topHeader[x] = "They think it's all over. <a title="Football News" href="URL">It is now!</a>";
如果你现在将这些东西添加到字符串中,那么它们不会被格式化为HTML,但是我想以某种方式逃避它们,以便它们可以.当然,我已经看了互联网的答案,但由于剃须刀是相当新的,没有什么可以帮助我.
任何人都有这样做的想法?
解决方法
您需要创建一个持有HTML源的
IHtmlString
实现.
Razor计划有一个帮忙的方法为你做这个,但是,AFAIK还没有,所以我相信你需要创建自己的类实现接口,并从GetHtmlString()方法返回你的HTML.
编辑:您可以使用HtmlString类.
您可以将topHeader字典更改为保存IHtmlStrings而不是字符串,也可以将代码留下,但将其包装在Razor视图中的HtmlString中:
<tag>@new HtmlString(topHeader[x])</tag>
确保正确地转义任何非HTML特殊字符.