Chociaż patrząc na temat Pobrałem z galerii Orchard CMS, zauważyłem, że Layout.cshtml plik miał ten blok kodu na początku pliku:Co robi blok kodu @functions w pliku brzytwy i kiedy (jeśli w ogóle) powinienem go użyć?
@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 : "";
}
}
wiem, co robi zadeklarowana funkcja (oblicza, które strefy są wypełnione w celu zwrócenia szerokości każdej kolumny), moje pytanie brzmi: jakie jest prawidłowe użycie bloku @function i kiedy powinienem go użyć?
Osobiście uważam, że należy tego unikać, ponieważ po prostu mętnieje wody w warstwie prezentacji/widoku i jaki jest kontroler biznesowy/warstwa. – Liam
@Liam - Nie zgadzam się. Myślę, że powinien on być wyraźnie użyty do celów * unikania * mącenia wód. W tym przykładzie służy do określania szerokości kolumny, o czym kontroler nie powinien nawet wiedzieć. – Bobson
@bobson point taken – Liam