Очень просто определить функцию внутри бритвы.
@functions {
public static HtmlString OrderedList(IEnumerable<string> items)
{ }
}
Таким образом, вы можете вызывать функцию где угодно.Как и
@Functions.OrderedList(new[] { "Blue", "Red", "Green" })
Однако эту же работу можно выполнить и с помощью helper
.В качестве примера
@helper OrderedList(IEnumerable<string> items){
<ol>
@foreach(var item in items){
<li>@item</li>
}
</ol>
}
Так в чем же разница?Согласно этой предыдущей записи и @helpers, и @functions имеют одну общую черту - они делают возможным повторное использование кода на веб-страницах.У них также есть одна общая черта - на первый взгляд, они выглядят одинаково, что может вызвать путаницу в их ролях.Однако они не одинаковы.По сути, помощник - это многократно используемый фрагмент Razor sytnax, представленный в виде метода и предназначенный для отображения HTML в браузере, тогда как функция - это статический служебный метод, который можно вызывать из любого места в приложении веб-страниц.Тип возвращаемого значения для помощника всегда HelperResult, тогда как тип возвращаемого значения для функции - то, что вы хотите, чтобы оно было.