如何使用String.Format打印HTML实体

时间:2013-09-16 20:25:06

标签: c# asp.net-mvc-4 razor

我的观点中有类似的内容:

@String.Format("{0} © Copyright by Nemanja", DateTime.Now.Year);

但是,这会将&转移到&。有没有办法绕过这个?

3 个答案:

答案 0 :(得分:9)

您正在寻找@Html.Raw(...),这会阻止这种情况并改为创建XSS漏洞。

在你的情况下,你可以完全摆脱它:

@DateTime.Now.Year © Copyright by Nemanja

答案 1 :(得分:5)

你可以:

@Html.Raw(String.Format("{0} © Copyright by Nemanja", DateTime.Now.Year));

答案 2 :(得分:3)

将其包含在Html.Raw中以防止转义。几乎MVC中的所有帮助程序都将对内容进行HTML编码,以确保任何可能包含HTML或脚本的模型值都不会包含危险脚本。 Html.Raw显式显示内容而不对其进行编码。

@Html.Raw( String.Format("{0} © Copyright by Nemanja", DateTime.Now.Year) )