Во время просмотра темы, загруженной из галереи Orchard CMS, я заметил, что в файле Layout.cshtml этот блок кода находится в верхней части файла:
@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 : "";
}
}
Я знаю, что делает заявленная функция (вычисляет, какие зоны заполняются для того, чтобы вернуть ширину каждого столбца), мой вопрос: каково правильное использование блока @function и когда я когда-либо его использую?