Razor Pages @ блок функций против блока кода - PullRequest
1 голос
/ 21 марта 2020

В файлах Razor Pages cs html, может кто-нибудь сказать мне, в чем разница между:

@functions
{
    // Etc.
}

И:

@{
    // Etc.
}

Это выглядит почти так же.

1 Ответ

1 голос
/ 21 марта 2020

Согласно официальной документации

@

Блоки кода бритвы начинаются с @ и заключены в {}. В отличие от выражений, код 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

The @functions директива позволяет добавлять C# членов (полей, свойств и методов) в сгенерированный класс :

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

В компонентах Razor используйте @code вместо @functions для добавления C# участников.

...