En mi sitio web, tengo una sección (una barra lateral flotante) que quiero que se represente solo para un subconjunto de usuarios (administradores). Espero poder poner la lógica en el diseño maestro para determinar si la sección se debe mostrar o no, pero eso causa un error en la página si la sección no se procesa.¿Cómo puedo renderizar opcionalmente una sección en ASP.Net MVC 3?
Código de ejemplo - Layout.cshtml ... código
... code ...
@if(user.IsAdmin) {
@RenderSection("AdminSidebar", false)
}
Ejemplo - MyPage.cshtml ...
@section AdminSidebar {
... code ...
}
¿Alguien sabe cómo conseguir que esto funcione sin tener que poner la lógica en todas las páginas secundarias?
Como nota, IsSectionDefined ("AdminSidebar") solo funciona en el archivo de diseño. No funciona en la página para probar si la sección está disponible o no.
inteligente. Me gusta. Me gustaría que el framework MVC simplemente ignorara las secciones que no estaban definidas en lugar de arrojar errores, pero esto me permite definir la sección de la manera que quiero. – Brian
@Brian ¿Por qué no usar el renderPartial como lo sugiere itsmatt, que es mucho más limpio? – gdoron
Porque entonces tendría que crear un parcial para cada página en la que quiero agregar una barra lateral (se basa en el contexto de la página). – Brian