Razor代码可以阻止输出到视图吗?

时间:2016-05-19 19:22:21

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我在Razor中看过这样的例子:

@{
    if(something == true)
    {
      <p>This</p>
    }
    else
    {
      <p>That</p>
    }
}

我认为Razor代码块不应该向视图输出任何内容,并且使用@()定义的表达式也是如此。那怎么可能呢?

1 个答案:

答案 0 :(得分:6)

您可以在this page

中找到有关这两种表达方式的详细信息

语句@()被称为显式表达式,上面的链接描述如下:

  

当您想要做某事时,应该使用明确的印象   否则可能会混淆解析器。例如,如果你需要   访问字符串中间的变量或者如果你想这样做   计算/修改输出。

语句@{}称为多语句代码块。上面的链接描述如下:

  

Razor代码块以@ -character和的组合开头   {-character以}字符结尾。在这个内部,你是   现在编写C#代码。

如此简短的回答是可以使用多语句块,并且通常用于呈现某些HTML。当编译器可能在HTML和C#代码之间混淆时,您需要使用显式表达式(@())。