用剃刀显示编码的html

jan*_*ani 75 html-encode razor asp.net-mvc-3

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

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

<div class='content'>    
   @MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>
Run Code Online (Sandbox Code Playgroud)

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

Ami*_*abh 150

试试这个:

<div class='content'>    
   @Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
Run Code Online (Sandbox Code Playgroud)

  • 我最终根据这个想法制作了一个扩展方法.@ Html.RawDecode(Model.Content) (8认同)
  • 避免; 到底 (3认同)

tva*_*son 47

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

<div class='content'>
    @Html.Raw( Model.Content )
</div>
Run Code Online (Sandbox Code Playgroud)


Muh*_*man 9

这很简单:

HttpUtility.HtmlDecode(Model.Content)
Run Code Online (Sandbox Code Playgroud)

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

在视图中:

@Html.GetSomeHtml()
Run Code Online (Sandbox Code Playgroud)

在控制器中:

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


Bel*_*ash 8

您也可以简单地使用该HtmlString课程

    @(new HtmlString(Model.Content))
Run Code Online (Sandbox Code Playgroud)