如何使用@:in .cshtml

时间:2015-12-15 19:25:44

标签: javascript .net asp.net-mvc asp.net-mvc-4 razor

例如,我在视图中显示一些文字:

@:<link href="/Content/stylesheet.css" rel="stylesheet" type="text/css" /> 

@:<script src="/bundles/scripts" type="text/javascript"></script>

什么是@:以及何时以及如何使用它?

1 个答案:

答案 0 :(得分:4)

当您想要将某些内容输出为文字文本时,此运算符可与其他Razor服务器端运算符结合使用。

例如:

@if (model.Foo) {
    @:Some text to be written directly.
}

你不能只写这个,因为它会产生错误:

@if (model.Foo) {
    Some text to be written directly.
}

因此,基本上对于输出已经是HTML标记的示例,您不需要此运算符。但是当你想将一些服务器端Razor标记与显式输出混合时,你可以使用它。您还可以使用特殊<text>标记来实现相同的效果:

@if (model.Foo) {
    <text>
    Some text to be written directly.
    </text>
}

这会欺骗Razor解析器将您要输出的文本视为文字,而不是将其视为服务器端代码。

另一个例子。假设您要输出一些没有相应开始标记的HTML标记:

@if (model.Foo) {
    @:</div>
}

如果你刚写了这个:

@if (model.Foo) {
    </div>
}

然后Razor解析器会抱怨,因为它不知道打开div标签。