Asp.net mvc 在MVC4中向页面写入HTML

Asp.net mvc 在MVC4中向页面写入HTML,asp.net-mvc,asp.net-mvc-4,c#-4.0,razor,Asp.net Mvc,Asp.net Mvc 4,C# 4.0,Razor,我在数据库中存储了一些HTML,看起来完全像这样: <strong><a href="http://www.google.com" target="_blank">Maintenance scheduled </a></strong>tomorrow 我想将其输出到Razor视图,并以HTML格式正确格式化。我不想看到,我只想要HTML 从这段代码中可以看出,我尝试了几种不同的方法:

我在数据库中存储了一些HTML,看起来完全像这样:

<strong><a href="http://www.google.com" target="_blank">Maintenance scheduled </a></strong>tomorrow
我想将其输出到Razor视图,并以HTML格式正确格式化。我不想看到
,我只想要HTML

从这段代码中可以看出,我尝试了几种不同的方法:

div id="maintenanceMessage">
            @*@HttpUtility.HtmlDecode(sysSettings.MaintenanceMessage)*@
            @*@HttpUtility.HtmlDecode((new HtmlString(sysSettings.MaintenanceMessage)).ToString())*@
            @Html.Raw(sysSettings.MaintenanceMessage)
</div> 
div id=“maintenanceMessage”>
@*@HttpUtility.HtmlDecode(sysSettings.MaintenanceMessage)*@
@*@HttpUtility.HtmlDecode((新的HtmlString(sysSettings.MaintenanceMessage)).ToString()*@
@Html.Raw(sysSettings.MaintenanceMessage)
但在任何情况下,它都会以文本形式显示:

<strong><a href="http://www.google.com" target="_blank">Maintenance scheduled </a></strong>tomorrow
明天 而不是格式化的HTML。 我不确定我做错了什么?

试试看

@MvcHtmlString.Create(HttpUtility.HtmlDecode(sysSettings.MaintenanceMessage))

如果在将ascii发送到视图之前替换它,它是否工作。我们通过这些发送字符串

public string Decode(string value)
    {
        return (value)
            .Replace("&quot;", "\"")
            .Replace("&lt;", "<")
            .Replace("&gt;", ">");
    }

    public string Encode(string value)
    {
        return (value)
          .Replace("\"", "&quot;")
          .Replace("'", "''")
          .Replace("<", "&lt;")
          .Replace(">", "&gt;");
    }
公共字符串解码(字符串值)
{
返回(值)
.Replace(“”,“\”)
.替换(“,”);
}
公共字符串编码(字符串值)
{
返回(值)
.替换(“\”,“”)
.替换(“”,“”)
.替换(“,”);
}

检查存储的内容。也许当您试图将其存储在数据库中时,它会将特殊的HTML字符替换为编码字符。例如:


在Unicode格式中,每个都需要小心使用,但是,如果内容是用户生成的,您将对XSS AttacksCellent敞开大门。这就成功了。在这种情况下,只有最高级别的管理员可以访问该字段,并且消息将只显示在站点的后端。但是,警告指出。非常感谢。