синтаксис razor-цикл foreach


@foreach (string s in "1,2,3".Split(',')) {
  s is equal to @s<br/>
}

Я хочу, чтобы выплюнуть: s равно 1 s равно 2 s равно 3

но я получаю всевозможные ошибки, потому что Visual Studio думает, что то, что находится между {} - Это код, но я хочу, чтобы это была разметка.

3 62

3 ответа:

только что видел этот блог 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>
}

Скотт Гатри только что ответил, что сегодня утром.
Измените его на

@foreach (string s in "1,2,3".Split(',')) {
  @: s is equal to @s<br/>
}
@foreach (string s in "1,2,3".Split(',')) {
  <text>s is equal to </text>@s<br/>
}

Я думаю, это потому, что вы разбираете текст вне скобок, поэтому Razor думает, что это код, попробуйте использовать текстовый тег razor выше, это разбирает точно так же, как @: но (для меня, по крайней мере) немного более интуитивно (он не будет разбирать теги)