剃刀语法 – foreach循环

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

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

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

刚才在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/> } 

我认为这是因为你正在parsing括号外的文本,所以剃刀认为它是代码,尝试使用上面的剃刀文本标签,这个parsing完全一样的@:但(至less对我来说)是一个更直观的一点将不会parsing标签)