【问题标题】:Razor Pages @functions block vs code blockRazor Pages @functions 块与代码块
【发布时间】:2020-03-21 19:14:35
【问题描述】:

在 Razor Pages cshtml 文件中,谁能告诉我以下内容有什么区别:

@functions
{
    // Etc.
}

还有:

@{
    // Etc.
}

看起来几乎是一回事。

【问题讨论】:

  • 最后..可以添加C#成员(字段、属性和方法)吗?

标签: c# asp.net-core razor-pages


【解决方案1】:

据官方documentation

@

Razor 代码块以@ 开头,并用{} 括起来。与表达式不同,代码块内的 C# 代码不会呈现。视图中的代码块和表达式共享相同的范围并按顺序定义:

@{
    var quote = "The future depends on what you do today. - Mahatma Gandhi";
}

<p>@quote</p>

@{
    quote = "Hate cannot drive out hate, only love can do that. - Martin Luther King, Jr.";
}

<p>@quote</p>

@代码

@code 块使 Razor 组件能够将 C# 成员(字段、属性和方法)添加到 组件

@code{
    // C# members (fields, properties, and methods)
}

@函数

@functions 指令允许将 C# 成员(字段、属性和方法)添加到生成的类

@functions {
    // C# members (fields, properties, and methods)
}

在 Razor 组件中,使用 @code 而不是 @functions 添加 C# 成员。

【讨论】:

  • 那么,看起来它们几乎是一回事。
  • 差不多,因为@code@functions 的别名。 @code@functions 的明显区别可用于 .razor 文件,但建议使用 @code 而非后者。对于cshtml 文件,您只能使用@functions@{ ...} 可以在任何一个中使用,但与前面不同的是,它不能用于向生成的类添加属性、方法或字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多