簡體   English   中英

Razor Pages @functions 塊與代碼塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM