ASP.NET MVC ul/li menu

Je suis en train de faire une ul/li menu dans mon ASP.NET application MVC. Le menu doit avoir 4 à 5 éléments de menu et chaque topmenu élément doit avoir un hover/menu déroulant avec certains éléments de sous-menu. Le fini de la structure du menu devrait ressembler à une habitude ul/li menu déroulant:

<ul>

 <li class="active">
   <a>Topmenu 1</a>
   <ul>
   <li>Submenu1</li>
   <li>Submenu2</li>
   <li>Submenu3</li>
   </ul>
 </li>

  <li class="inactive">
   <a>Topmenu 2</a>
   <ul>
   <li>Submenu4</li>
   <li>Submenu5</li>
   <li>Submenu6</li>
   </ul>
 </li>
  And so on...
</ul> 

Le menu du haut, les articles doivent avoir des classes avec "actif" et "inactif". J'ai résolu le problème en faisant un personnalisé HtmlHelper qui génère le topmenu éléments. Qui ressemble à ceci:

 public static MvcHtmlString MenuItem(
    this HtmlHelper htmlHelper,
    string text,
    string action,
    string controller
)
    {

        var li = new TagBuilder("li");
        var routeData = htmlHelper.ViewContext.RouteData;
        var currentAction = routeData.GetRequiredString("action");
        var currentController = routeData.GetRequiredString("controller");
        if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
            string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
        {
            li.AddCssClass("tab active");
        }
        else {
            li.AddCssClass("tab inactive");
        }
        li.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
        return MvcHtmlString.Create(li.ToString());
    }

J'ai appeler la fonction comme ceci:

@Html.MenuItem("Katalog", "Index", "Katalog")

Cette fonction fonctionne très bien. Malheureusement, l'ensemble de la topmenu <li> élément est arriver généré. Je n'ai donc pas la possibilité de placer le <ul> pour la submenuitems quelque part dans le topmenu <li> tag.

Quelqu'un a une idée de comment faire un menu comme ça? Ou une idée de comment je peux obtenir mes <ul> dans le topmenu <li> tag?

OriginalL'auteur colosso | 2012-06-25