Comment définir une méthode dans Razor?

Comment définir une méthode dans Razor?

Laisser à lui-même les débats quand (si jamais) cela devrait être fait, @functions est ce que vous faites.

@functions { // Add code here. } 

Vous voulez dire aide en ligne?

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

Il est très simple de définir une fonction dans le razor.

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

Vous pouvez donc appeler la fonction n’importe où. Comme

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

Cependant, ce même travail peut aussi être effectué par l’intermédiaire de l’ helper . Par exemple

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

Alors, quelle est la difference?? Selon ce post précédent, @helpers et @functions partagent une chose en commun: ils rendent possible la réutilisation du code dans les pages Web. Ils partagent également une autre chose en commun: ils se ressemblent à première vue, ce qui peut créer un peu de confusion quant à leurs rôles. Cependant, ils ne sont pas les mêmes. Essentiellement, un assistant est un fragment réutilisable de Razor sytnax exposé en tant que méthode et est destiné au rendu HTML dans le navigateur, tandis qu’une fonction est une méthode d’utilitaire statique qui peut être appelée de n’importe où dans votre application Pages Web. Le type de retour pour un assistant est toujours HelperResult, alors que le type de retour pour une fonction est celui que vous voulez.

Vous pourriez aussi le faire avec un Func comme celui-ci

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

Le razor n’est qu’un moteur de template.

Vous devriez créer une classe régulière.

Si vous souhaitez créer une méthode dans une page de razor, placez-les dans un bloc @functions .