剃刀语法 - foreach循环

时间:2010-12-16 16:29:43

标签: razor

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

我想吐出来: s等于1 s等于2 s等于3

但是我遇到了各种各样的错误,因为Visual Studio认为{}之间的代码是代码,但我希望它是标记。

3 个答案:

答案 0 :(得分:107)

刚看到这个on ScottGu's blog this morning:在该行之前使用@:

@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>
}

答案 1 :(得分:18)

Scott Guthrie just answered that this morning
将其更改为

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

答案 2 :(得分:5)

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

我认为这是因为你正在解析括号之外的文本,所以Razor认为它是代码,尝试使用上面的剃刀文本标签,这解析与@完全相同:但是(至少对我而言)是多一点直观(它不会解析标签)