[英]Razor Pages @functions block vs code block
在 Razor Pages cshtml文件中,有人可以告訴我以下內容之間有什么區別:
@functions
{
// Etc.
}
和:
@{
// Etc.
}
看起來幾乎是一樣的。
根據官方文檔
@
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
塊使剃刀組件C#成員(字段,屬性和方法)添加到組分:
@code{
// C# members (fields, properties, and methods)
}
@職能
@functions
指令允許將 C# 成員(字段、屬性和方法)添加到生成的類:
@functions {
// C# members (fields, properties, and methods)
}
在 Razor 組件中,在@functions
上使用@code
添加 C# 成員。
我有同樣的問題。 通過閱讀官方文檔,它指出:
@functions 方法在具有標記時用作模板方法:
@{
RenderName("Mahatma Gandhi");
RenderName("Martin Luther King, Jr.");
}
@functions {
private void RenderName(string name)
{
<p>Name: <strong>@name</strong></p>
}
該代碼呈現以下 HTML:
<p>Name: <strong>Mahatma Gandhi</strong></p>
<p>Name: <strong>Martin Luther King, Jr.</strong></p>
這讓我明白,渲染 html 模板更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.