Adición condicional de clase basada en la ruta

Tengo diferentes secciones en mi sitio. Digamos que uno se llama Cuentas.

Cuentas tiene una lista de enlaces de subnavegación. Cada enlace de subnavegación tiene su propia vista en una carpeta de vista de Cuentas (Vistas/Cuentas/Subnav1, Vistas/Cuentas/Subnav2, etc.). Necesito almacenar el código HTML de subnavegación de la cuenta en un solo lugar y hacer que agregue condicionalmente una clase de "seleccionado" a la etiqueta adecuada en el código HTML.

No sé si esto se logra mejor al tener una página maestra anidada de Cuentas (que tiene el subnavegador de Cuentas) o al crear un subnavegador de Cuenta parcial. De cualquier manera, necesito averiguar cómo hacer esto en general.

Aquí hay un pseudocódigo de lo que estoy pensando:

Cuenta subnav página maestra anidada/parcial:

<ol>
    <li <% if (action.Equals("Subnav1")) { %><%: class="selected" %><% } %>>Subnav 1</li>
    <li <% if (action.Equals("Subnav2")) { %><%: class="selected" %><% } %>>Subnav 2</li>
</ol>

preguntado el 09 de septiembre de 13 a las 21:09

1 Respuestas

<ol>
    <% string action = ViewContext.Controller.ValueProvider.GetValue("action").RawValue; %>
    <li <% if (action.Equals("Subnav1", StringComparison.OrdinalIgnoreCase)) { %><%: class="selected" %><% } %>>Subnav 1</li>
    <li <% if (action.Equals("Subnav2", StringComparison.OrdinalIgnoreCase)) { %><%: class="selected" %><% } %>>Subnav 2</li>
</ol>

Respondido el 09 de Septiembre de 13 a las 21:09

Gracias por su pronta respuesta. ¿Recomendaría lograr esto con una página maestra parcial o anidada? - tau

@tau Probablemente tiraría eso li en una vista parcial si hay demasiados. - Yuri Faktorovich

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.