¿Cómo defino un método en Razor?

¿Cómo defino un método en Razor?

Dejando solo cualquier debate sobre cuándo (si alguna vez) debería hacerse, @functions es cómo lo haces.

@functions { // Add code here. } 

¿Te refieres a ayudante en línea?

 @helper SayHello(string name) { 
Hello @name
} @SayHello("John")

Es muy simple definir una función dentro de la máquina de afeitar.

 @functions { public static HtmlString OrderedList(IEnumerable items) { } } 

Entonces puedes llamar a la función en cualquier lugar. Me gusta

 @Functions.OrderedList(new[] { "Blue", "Red", "Green" }) 

Sin embargo, este mismo trabajo se puede hacer a través de helper también. Como ejemplo

 @helper OrderedList(IEnumerable items){ 
    @foreach(var item in items){
  1. @item
  2. }
}

¿¿Entonces cuál es la diferencia?? De acuerdo con esta publicación anterior, tanto @helpers como @functions comparten una cosa en común: hacen que la reutilización de código sea una posibilidad dentro de las páginas web. También comparten otra cosa en común: se ven iguales a primera vista, que es lo que podría causar un poco de confusión sobre sus roles. Sin embargo, no son lo mismo. En esencia, un helper es un fragmento reutilizable de Razor sytnax expuesto como método, y está destinado a renderizar HTML en el navegador, mientras que una función es un método de utilidad estático al que se puede llamar desde cualquier lugar dentro de su aplicación de páginas web. El tipo de devolución para un ayudante siempre es HelperResult, mientras que el tipo de devolución para una función es lo que usted quiera que sea.

También podrías hacerlo con un Func como este

 @{ var getStyle = new Func((width, margin) => string.Format("width: {0}px; margin: {1}px;", width, margin)); } 

Razor es solo un motor de plantillas.

Debes crear una clase regular.

Si desea hacer un método dentro de una página Razor, colóquelos en un bloque @functions .