我在Razor中看过这样的例子:
@{
if(something == true)
{
<p>This</p>
}
else
{
<p>That</p>
}
}
我认为Razor代码块不应该向视图输出任何内容,并且使用@()定义的表达式也是如此。那怎么可能呢?
答案 0 :(得分:6)
您可以在this page
中找到有关这两种表达方式的详细信息语句@()
被称为显式表达式,上面的链接描述如下:
当您想要做某事时,应该使用明确的印象 否则可能会混淆解析器。例如,如果你需要 访问字符串中间的变量或者如果你想这样做 计算/修改输出。
语句@{}
称为多语句代码块。上面的链接描述如下:
Razor代码块以@ -character和的组合开头 {-character以}字符结尾。在这个内部,你是 现在编写C#代码。
如此简短的回答是可以使用多语句块,并且通常用于呈现某些HTML。当编译器可能在HTML和C#代码之间混淆时,您需要使用显式表达式(@()
)。