【发布时间】:2011-05-26 16:01:48
【问题描述】:
@foreach (string s in "1,2,3".Split(',')) {
s is equal to @s<br/>
}
我要吐槽: s 等于 1 s 等于 2 s 等于 3
但我遇到了各种各样的错误,因为 Visual Studio 认为 {} 之间是代码,但我希望它是标记。
【问题讨论】:
标签: razor
@foreach (string s in "1,2,3".Split(',')) {
s is equal to @s<br/>
}
我要吐槽: s 等于 1 s 等于 2 s 等于 3
但我遇到了各种各样的错误,因为 Visual Studio 认为 {} 之间是代码,但我希望它是标记。
【问题讨论】:
标签: razor
@foreach (string s in "1,2,3".Split(',')) {
<text>s is equal to </text>@s<br/>
}
我认为这是因为您正在解析括号外的文本,所以 Razor 认为它是代码,尝试使用上面的 razor 文本标签,这与 @: 解析完全相同,但(至少对我而言)更多直观(它不会解析标签)
【讨论】:
Scott Guthrie just answered that this morning.
改成
@foreach (string s in "1,2,3".Split(',')) {
@: s is equal to @s<br/>
}
【讨论】:
刚刚看到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>
}
【讨论】:
<text> 适合多行。