Ответ 1
Попробуйте следующее:
<div class='content'>
@Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
Я храню закодированный 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.
<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 в базе данных.
Имхо, вы не должны хранить ваши данные, закодированные html в базе данных. Просто сохраните текст (не закодированный) и просто покажите свои данные как это, и ваш html будет автоматически закодирован:
<div class='content'>
@Model.Content
</div>