Criando um menu de página principal do ASP.NET MVC dinamicamente, com base na "função" do usuário atual

Eu já vi algumas perguntas semelhantes, mas nenhuma que se parece com o que estou tentando fazer.

Esta é minha implementação atual sem qualquer segurança:

<div id="menucontainer">
    <ul id="menu">              
        <li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
        <li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
        <li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
        <li><%= Html.ActionLink("User List", "Index", "DController")%></li>
    </ul>
</div>

Isso é bom, e o acima funciona. Eu tenho a opção [Autorizar] Atributos nas Ações do CController e DController para impedir o acesso não autorizado - mas gostaria de remover esses itens do menu para usuários que não possuem a Função correta, porque quando a veem e clicam nele e diz a eles que eles não têm permissão, eles querem. Se eles não sabem que está lá, é melhor para todos os envolvidos ...

Algo assim é, em última análise, o objetivo que estou tentando atingir, mas estou procurando a abordagem mais MVC Flavored, onde a "visualização" é "burra":

<div id="menucontainer">
    <ul id="menu">              
        <li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
        <li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
        <% If(Role = Roles.Admin) { %>
        <li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
        <li><%= Html.ActionLink("User List", "Index", "DController")%></li>
        <% } %>
    </ul>
</div>

questionAnswers(6)

yourAnswerToTheQuestion