J'utilise le package nuget MvcSiteMapProvider pour créer ma structure de menu. J'ai un onglet appelé "DTLSA" et lorsque les utilisateurs survolent que je veux seulement "Statut de l'application" et "Appliquer maintenant" visibles. Donc, à partir de "Personnel" et ci-dessous seraient tous cachés dans la structure. Cependant, si un utilisateur est sur "Personnel" ou l'une des autres pages, je veux que le "DTLSA" soit appliqué à la classe css "active" (c'est la seule raison pour laquelle je les ai ici). Si je définis le visibility=!*
, l'onglet DTLSA n'est pas actif. Est-il possible de le mettre en activité mais de ne pas afficher ces options dans la liste déroulante?mvcSiteMapNode masquer les noeuds enfant
Mvc.sitemap:
<mvcSiteMapNode title="DTLSA" url="#">
<mvcSiteMapNode title="Application Status" controller="application" action="index" area="" />
<mvcSiteMapNode title="Apply Now" controller="application" action="applynow" preservedRouteParameters="applicationId" area="" />
<mvcSiteMapNode title="Personnel" controller="application" action="personnel" preservedRouteParameters="applicationId" area="" visibility="!*" />
<mvcSiteMapNode title="Review" controller="application" action="review" area="" preservedRouteParameters="applicationId" visibility="!*" />
<mvcSiteMapNode title="Checkout" controller="application" action="checkout" area="" preservedRouteParameters="applicationId" visibility="!*" />
<mvcSiteMapNode title="Confirmation" controller="application" action="confirmation" preservedRouteParameters="applicationId" area="" visibility="!*" />
</mvcSiteMapNode>
MenuHelperModel modèle d'affichage:
@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
@using System.Web.Mvc.Html
@using MvcSiteMapProvider.Web.Html.Models
<ul class="nav navbar-nav navbar-right">
@foreach (var node in Model.Nodes) {
<li class="@(node.IsCurrentNode || node.Children.Any(n => n.IsCurrentNode) ? "active" : "") @(node.Children.Any() ? "dropdown" : "")">@Html.DisplayFor(m => node)
@if (node.Children.Any()) {
@Html.DisplayFor(m => node.Children)
}
</li>
}