Показать закодированный HTML с бритвой - PullRequest
72 голосов
/ 17 февраля 2011

Я храню закодированный HTML в базе данных.

Единственный способ, которым я мог бы отобразить его правильно, это:

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

Это ужасно.Есть ли лучший способ сделать это?

Ответы [ 5 ]

146 голосов
/ 17 февраля 2011

Попробуйте это:

<div class='content'>    
   @Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
46 голосов
/ 17 февраля 2011

Используйте Html.Raw().Фил Хаак опубликовал хорошее руководство по синтаксису на http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx.

<div class='content'>
    @Html.Raw( Model.Content )
</div>
8 голосов
/ 25 мая 2013

это довольно просто:

HttpUtility.HtmlDecode(Model.Content)

Другое решение, вы также можете вернуть HTMLString, Razor выведет правильное форматирование:

в самом представлении:

@Html.GetSomeHtml()

в контроллере:

public static HtmlString GetSomeHtml()
{
    var Data = "abc<br/>123";
    return new HtmlString(Data);
}
7 голосов
/ 21 июля 2014

Вы также можете просто использовать HtmlString класс

    @(new HtmlString(Model.Content))
1 голос
/ 13 июня 2016

Я храню закодированный HTML в базе данных.

Имхо, вы не должны хранить свои данные в кодировке html в базе данных. Просто сохраните в виде обычного текста (не закодированный) и просто отобразите ваши данные, как это, и ваш HTML будет автоматически закодирован:

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