【问题标题】:Can Razor code blocks output to a view?Razor 代码块可以输出到视图吗?
【发布时间】:2016-05-19 19:22:21
【问题描述】:

我在 Razor 中看到过这样的示例:

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以在this page中找到有关这两种表达式的详细信息

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

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

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

    Razor 代码块以 @-character 和 {-字符并以 } 字符结尾。在这里面,你是 现在正在编写 C# 代码。

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2020-05-29
      • 2014-08-14
      • 1970-01-01
      • 2014-02-14
      相关资源
      最近更新 更多