J'ai un site Web .net mvc3. Et je dois mettre en place le menu principal. Chacune des balises de menu est amené à son action et afficher un autre view.This ce que je viens:Mvc3 mettre en œuvre un lien d'action personnalisé
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Products", "Products", "Home")</li>
<li>@Html.ActionLink("Pricing", "Pricing", "Home")</li>
<li>@Html.ActionLink("Our Team", "OurTeam", "Home")</li>
<li>@Html.ActionLink("Contact Us", "ContactUs", "Home")</li>
</ul><!-- /menu -->
Ce point de vue est Html.RenderAction("Header", "Home");
dans ma mise en page (car il doit apparaître dans toutes les pages) que je dois mettre en œuvre ActionLink personnalisé Le texte d'ancrage doit être:
<span>text</span><b>text</b>
Le « texte » est la maison (par exemple la première li) Et le ActionLink actuel doit ajouter la classe: « Sélectionné » à l'ancre.
Comment je peux faire ça? Aide s'il vous plaît
p.s Je peux ajouter ce menu pour chaque vue de mon site Web avec la classe "sélectionnée" de la vue actuelle, mais ce n'est pas une bonne solution.
C'est une bonne solution. Mais mon menu est une vue partielle et appelé à partir de la mise en page. donc HttpContext.Current.Request.RequestContext.RouteData.Values ["action"]. ToString() renverra toujours le nom de ce partiel, et ce nom ne correspondra jamais au nom de l'action en cours .. –
Appelez quelque chose comme ça @ Html.Action ("Menu principal", "Menu"). que vous faites la logique et préparer la vue dans le contrôleur – Iridio
Mon erreur j'ai utilisé var currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString ("action") au lieu de HttpContext.Current.Request.RequestContext.RouteData.Values ["action"]. ToString(). C'est du travail maintenant. Merci –