Razorに関数を書く


asp.NetmvcのビューでRazorを使ってサーバーコードを書くことはよく知られています.中にforループ文を書いて、たくさんのものを出力して、牛が追い詰めているのがよく見られます.
しかし、ループ文がまだ私たちの要求を満たすことができない場合は、関数を定義して呼び出す必要があります.どうすればいいですか.
ネット上の牛が騒いでいるチュートリアルの文章はすぐに大半を口にした.
では、例を示します.
<ul class="navList clx" id="J_GisSiteNav">
    @functions{
        string outputTags(IList<ViewTag> list,bool isCurrent = false)
        {
            StringBuilder sb = new StringBuilder("");
            ……
            return sb.ToString();
        }
    }
    @if (mylist.Count > 0)
    {
        <span id='spBasicView'>@Html.Raw(outputTags(list, false))</span>
        <span id='spMyView'>@Html.Raw(outputTags(mylist, true))</span>
    }
    else if (list.Count > 0)
    {
        <span id='spBasicView'>@Html.Raw(outputTags(list, true))</span>
    }        
    <li><a class="add" onclick="setTags()" href="javascript:void(0);">......</a></li>
</ul>