【发布时间】:2020-03-21 19:14:35
【问题描述】:
在 Razor Pages cshtml 文件中,谁能告诉我以下内容有什么区别:
@functions
{
// Etc.
}
还有:
@{
// Etc.
}
看起来几乎是一回事。
【问题讨论】:
-
最后..可以添加C#成员(字段、属性和方法)吗?
标签: c# asp.net-core razor-pages
在 Razor Pages cshtml 文件中,谁能告诉我以下内容有什么区别:
@functions
{
// Etc.
}
还有:
@{
// Etc.
}
看起来几乎是一回事。
【问题讨论】:
标签: c# asp.net-core razor-pages
@
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。 @{ ...} 可以在任何一个中使用,但与前面不同的是,它不能用于向生成的类添加属性、方法或字段。