Я храню закодированный HTML в базе данных.
Единственный способ, которым я мог бы отобразить его правильно, это:
<div class='content'> @MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content)); </div>
Это ужасно.Есть ли лучший способ сделать это?
Попробуйте это:
<div class='content'> @Html.Raw(HttpUtility.HtmlDecode(Model.Content)) </div>
Используйте Html.Raw().Фил Хаак опубликовал хорошее руководство по синтаксису на http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx.
Html.Raw()
<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 класс
HtmlString
@(new HtmlString(Model.Content))
Имхо, вы не должны хранить свои данные в кодировке html в базе данных. Просто сохраните в виде обычного текста (не закодированный) и просто отобразите ваши данные, как это, и ваш HTML будет автоматически закодирован:
<div class='content'> @Model.Content </div>