在ASP.net MVC Razor中,@:的意思是什么?

46

我正在处理另外一个人写的ASP.net MVC Razor 视图。我看到它包含了以下内容:

<span>
    @:
</span>

我知道@符号可以让我在视图中插入代码,但是@:代表什么意思?


4
@: 序列表示接下来的内容行应该被视为一个内容块。 - CodeCaster
@CodeCaster,将其作为答案添加,我会标记它。 - Vivian River
1个回答

88
在MVC中,@是一种特殊字符,允许您在HTML中使用Razor语法(在.cshtml文件中),在运行时(或预编译)将其转换为C#代码。
使用@,您可以在HTML中编写C#代码,而使用@:,则可以在C#代码中编写HTML代码。
例如:
@foreach (TestClass item in Model)
{
    @:@item.Code - @item.Name
}

如果没有@:,就不可能做到这一点,因为在第一个@之后的所有字符都将被视为C#。

这样,您正在从item中获取两个变量,并将字符-放置在它们之间,结果是一个内容块(或html /文本)。


1
这与在cshtml的C#块中使用<text>编写HTML块相同吗?它是否具有类似的目的? - regisls
1
据我所记,<text>与@:完全相同,但用于多行。 - Leandro Soares

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接