用剃刀显示编码的html

我将编码的HTML存储在数据库中。

我能正确显示它的唯一方法是:

<div class='content'> @MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content)); </div> 

它很丑。 有没有更好的方法来做到这一点?

尝试这个:

 <div class='content'> @Html.Raw(HttpUtility.HtmlDecode(Model.Content)) </div> 

使用Html.Raw() 。 Phil Haack在http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx上发布了一个很好的语法指南。;

 <div class='content'> @Html.Raw( Model.Content ) </div> 

这很简单:

 HttpUtility.HtmlDecode(Model.Content) 

另一个解决scheme,你也可以返回一个HTMLString,Razor会输出正确的格式:

在视图本身:

 @Html.GetSomeHtml() 

在控制器中:

 public static HtmlString GetSomeHtml() { var Data = "abc<br/>123"; return new HtmlString(Data); } 

你也可以简单地使用HtmlString

  @(new HtmlString(Model.Content)) 

我将编码的HTML存储在数据库中。

Imho你不应该把你的数据存储在数据库中。 只要存储在纯文本(不编码),只是像这样显示你的数据和你的HTML将被自动编码:

 <div class='content'> @Model.Content </div>