我知道@:
用于output a single line of content containing plain text or unmatched HTML tags;
如果是这样,为什么我会得到以下错误:
(“:”在代码块的开头无效。仅标识符,关键字,注释,“(”和“ {”有效。)
@foreach (int line in new int[] { 0, 1 })
{
<span>
@: aaaaa
</span>
}
尽管运行符合预期:
@foreach (int line in new int[] { 0, 1 })
{
@: aaaaa
}
答案 0 :(得分:2)
@:
用于在代码块内混合文本。
在C#代码块中使用span
标记或任何其他html元素时,您已经在混合HTML标记,并且razor可以正确解析并执行它。在HTML元素(非代码块)中使用@:
时,它甚至无效。
简而言之,您可以使用代码块内的HTML元素作为包装器来混合纯文本/ html。
@foreach (int line in new int[] { 0, 1 })
{
<div>Hello</div>
}
在剃须刀中,在代码块中混合纯文本时,@:
标签产生的结果与text
标签相同。下面的结果也将与您的第二个代码块产生相同的结果。
@foreach (int line in new int[] { 0, 1 })
{
<text>aaa533</text>
}