Написание HTML-кода внутри переменной в ASP.NET С# и Razor
Я новичок в ASP.NET С#, и у меня проблемы с некоторыми вещами.
В PHP я могу хранить HTML-код внутри переменной, например:
$list = "<li>My List</li>";
echo "<ul>{$list}</ul>"; // write <ul><li>My List</li></ul>
Я пробовал это в ASP.NET и Razor
string List = "<li>My List</li>";
<ul>@List</ul>
Но ASP изменяет "<" и " > " до >
и <
.. Вы знаете какое-либо решение для этого?
У меня есть другой вопрос: могу ли я вставить переменную внутри кавычек, например PHP?
echo "<ul>{$list}</ul>";
Ответы
Ответ 1
Двигатель Razor HTML кодирует строки по умолчанию, как вы заметили. Чтобы избежать такого поведения, просто используйте Html.Raw()
:
<ul>@Html.Raw(List)</ul>
Edit
Чтобы отобразить переменную внутри строки, я полагаю, вы могли бы использовать string.Format
:
@{ var someVariable = "world"; }
@string.Format("<div>hello {0}</div>", someVariable)
Хотя это кажется излишним (по крайней мере для этого примера), когда вы можете просто написать:
<div>hello @someVariable</div>