在MVC Views (*.cshtml)裏要將一個資料集合作loop迴圈分組顯示,一般正規的Razor程式寫法如下圖:
應用在Table裏,它就可以輸出下圖行列的分組效果。
但是一個View裏可能會存在多個群組顯示,若每個區塊都放上述的Razor源碼,不僅容易變數衝突,也缺乏程式ReUse的精神,所以我們可以利用C# Action Delegate把需要客制化的部分抽取出來,下圖函式內部裏的StringBuilder可以省略掉,以適應更多的變化:
日後在Razor View裏,就可以輕易輸出Grouping HTML自訂字串了。
MVC最主要精神就是不要在View裏寫複雜的邏輯程式判斷,應該要將這些分組寫法放到Model去,再包一層Method來簡化呈現參數,例如只提供群組數量就好。