Razor Pages @functions 块与代码块

Razor Pages @functions block vs code block

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

@functions
{
    // Etc.
}

并且:

@{
    // Etc.
}

几乎是一回事。

据官方报道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

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

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

@functions

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

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

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