En regardant un thème que j'ai téléchargé depuis la galerie Orchard CMS, j'ai remarqué qu'un fichier Layout.cshtml contenait ce bloc de code en haut du fichier :
@functions {
// To support the layout classifaction below. Implementing as a razor function because we can, could otherwise be a Func<string[], string, string> in the code block following.
string CalcuClassify(string[] zoneNames, string classNamePrefix)
{
var zoneCounter = 0;
var zoneNumsFilled = string.Join("", zoneNames.Select(zoneName => { ++zoneCounter; return Model[zoneName] != null ? zoneCounter.ToString() : ""; }).ToArray());
return HasText(zoneNumsFilled) ? classNamePrefix + zoneNumsFilled : "";
}
}
Je sais ce que fait la fonction déclarée (elle calcule quelles zones sont remplies afin de renvoyer la largeur de chaque colonne). Ma question est la suivante : quelle est l'utilisation correcte du bloc @function, et quand dois-je l'utiliser ?