Синтаксис бритвы - петля foreach
@foreach (string s in "1,2,3".Split(',')) {
s is equal to @s<br/>
}
Я хочу выплюнуть:
s равно 1
s равно 2
s равно 3
Но я получаю всевозможные ошибки, потому что Visual Studio думает, что между кодом {} есть код, но я хочу, чтобы он был разметкой.
Ответы
Ответ 1
Просто увидел это в блоге ScottGu этим утром: используйте @:
перед этой строкой:
@foreach (string s in "1,2,3".Split(',')) {
@: s is equal to @s<br/>
}
В качестве альтернативы используйте тег <text />
:
@foreach (string s in "1,2,3".Split(',')) {
<text>s is equal to @s<br/></text>
}
Ответ 2
Скотт Гатри только что ответил, что сегодня утром.
Измените его на
@foreach (string s in "1,2,3".Split(',')) {
@: s is equal to @s<br/>
}
Ответ 3
@foreach (string s in "1,2,3".Split(',')) {
<text>s is equal to </text>@s<br/>
}
Я думаю, что это потому, что вы разбираете текст вне скобок, поэтому Razor думает, что это код, попробуйте использовать тег бритвы выше, это анализирует точно так же, как @: но (для меня как минимум) немного больше интуитивно понятный (он не будет анализировать теги)