Для новичков в MVC хочу дать пару советов как записывать обычный текст и html код в разметке Razor если на странице используются блоки кода. Этот вопрос возник у меня самого, когда я приступил к изучению MVC.
Например, текст находится в теле оператора if.
В этом случае перед отображаемым текстом нужно поставить @:
Например, текст находится в теле оператора if.
В этом случае перед отображаемым текстом нужно поставить @:
@if (Condition)
{
@:Отображаемый текст <br/>
}
Если отображаемый текст заключен в html теги, то дополнительных символов ставить не нужно. Пример:
@if (Condition)
{
<div>Отображаемый текст</div>
}
Если текста много и он перемешан с html тегами, то весь блок можно заключить в тег разметки Razor <text>
@if (Condition)
{
<text>
<div>Отображаемый текст</div> Отображаемый текст
<div>Отображаемый текст</div> Отображаемый текст
</text>
}
Если мы хотим отобразить строковую переменную с html кодом, то при обычном выводе теги html кодируются в последовательность вида "<" ("<") и тп. В этом случае на странице пользователя html код отображается как текст. Чтобы избежать этого нужно использовать конструктор HtmlString("Текст с тегами"). Пример:
@{
var html = "<br/><b>текст</b>";
}
<div>@(new HtmlString(html))</div>
Есть еще одна конструкция, которая отображает html не кодируя его в специальные символы. Пример:
@(Html.Raw(
"<script type="javascript">alert("Hello, world!");</script>"))
Комментарии
Отправить комментарий