it-roy-ru.com

Показать закодированный HTML с бритвой

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

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

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

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

72
jani

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

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

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

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

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

HttpUtility.HtmlDecode(Model.Content)

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

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

@Html.GetSomeHtml()

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

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

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

    @(new HtmlString(Model.Content))
7
Bellash

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

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

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