синтаксис бритвы - цикл foreach - PullRequest
63 голосов
/ 16 декабря 2010
@foreach (string s in "1,2,3".Split(',')) {
  s is equal to @s<br/>
}

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

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

Ответы [ 3 ]

107 голосов
/ 16 декабря 2010

Только что видел это в блоге 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>
}
18 голосов
/ 16 декабря 2010

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

@foreach (string s in "1,2,3".Split(',')) {
  @: s is equal to @s<br/>
}
5 голосов
/ 16 декабря 2010
@foreach (string s in "1,2,3".Split(',')) {
  <text>s is equal to </text>@s<br/>
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...