Como base para la discusión. Cree un proyecto web ASP.NET MVC estándar.¿Cómo se indica visualmente la página actual en ASP.NET MVC?
Contendrá dos elementos de menú en la página maestra:
<div id="menucontainer">
<ul id="menu">
<li>
<%= Html.ActionLink("Home", "Index", "Home")%></li>
<li>
<%= Html.ActionLink("About", "About", "Home")%></li>
</ul>
</div>
¿Cómo puedo configurar el estilo CSS visual que indica la página actual. Por ejemplo, cuando en la página Acerca de/controlador, que básicamente me gustaría hacer esto:
<%= Html.ActionLink("About", "About", "Home", new {class="current"})%></li>
Y, por supuesto, cuando en la página principal:
<%= Html.ActionLink("Home", "Index", "Home", new {class="current"})%></li>
(Tener un estilo CSS nombres actuales que indican visualmente en el menú que esta es la página actual.)
Podría dividir el menú div de la página maestra en un marcador de posición de contenido, pero eso significaría que debo poner el menú en cada página .
¿Alguna idea, hay alguna buena solución para esto?
No es una buena solución. Una vista no debe saber nada sobre controladores y acciones. Los datos a mostrar solo deben ser suministrados por el modelo. –
Es solo un atajo para obtener la URL: podría hacer lo mismo con la URL solicitada, pero luego tendría que analizarla. Estoy satisfecho con este mecanismo que no rompe el patrón. – tvanfosson
¿Es correcta la sintaxis? Me sale "No puedo aplicar la indexación con [] a una expresión de tipo 'System.Web.Routing.RouteData '" –