Отображение кодированного html с бритвой



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



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



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


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

573   5  

5 ответов:

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

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

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

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

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

HttpUtility.HtmlDecode(Model.Content)

другое решение, вы также можете вернуть 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-кодировке в базе данных. Просто сохраните в обычном тексте (не закодированном) и просто отобразите свои данные так, и ваш html будет автоматически закодирован:

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

Comments

    Ничего не найдено.