none
Como mostrar una vista la cual se encuentra en una carpeta dentro de la carpeta Views RRS feed

  • Pregunta

  • Hola

    Tengo una carpeta dentro la carpeta "Controllers" llamada "Admin". Y quiero tener una Vista en una carpeta tambien llamada "Admin" dentro de la carpeta Views.

    Quiero tener eso, aparte del resto de las Vistas y controladores porque son particulares, las cuales deben ser usadas solo por los administradores del sitio. Por lo que quiero aplicarlo una restricción de seguridad a toda esa carpeta...

    Gracias

    sábado, 30 de noviembre de 2013 21:41

Todas las respuestas

  • Eso es lo normal, es decir, las vistas de un controlador se ponen en una carpeta por debajo de Views que tiene el mismo nombre que el controlador. Es decir, precisamente lo que estás haciendo; no necesitas tomar ninguna medida adicional para configurarlo.

    Para aplicar la restricción de seguridad, no se aplica sobre la carpeta de Vistas. TODAS las carpetas de vistas están protegidas y no se puede acceder directamente a ellas. Para mostrar una vista, en la URL se pone la dirección del método de acción del controlador que devuelve la vista. Por lo tanto, donde hay que poner la restricción de seguridad es en el método de acción que devuelve la vista, y no en la propia vista. esto se hace con el atributo [Authorize]. Se puede aplicar uno por uno a todos los métodos de acción, pero si quieres proteger todos los métodod de un controlador, puedes aplicar el atributo en el propio controlador:

    [Authorize(Roles="Administradores")] public class Admin:Controller { ... }

    domingo, 1 de diciembre de 2013 20:17
  • Eso es lo normal, es decir, las vistas de un controlador se ponen en una carpeta por debajo de Views que tiene el mismo nombre que el controlador. Es decir, precisamente lo que estás haciendo; no necesitas tomar ninguna medida adicional para configurarlo.

    Para aplicar la restricción de seguridad, no se aplica sobre la carpeta de Vistas. TODAS las carpetas de vistas están protegidas y no se puede acceder directamente a ellas. Para mostrar una vista, en la URL se pone la dirección del método de acción del controlador que devuelve la vista. Por lo tanto, donde hay que poner la restricción de seguridad es en el método de acción que devuelve la vista, y no en la propia vista. esto se hace con el atributo [Authorize]. Se puede aplicar uno por uno a todos los métodos de acción, pero si quieres proteger todos los métodod de un controlador, puedes aplicar el atributo en el propio controlador:

    [Authorize(Roles="Administradores")] public class Admin:Controller { ... }

    Hola y gracia... Lo de autorize me funciona perfectamente!!! Ahora lo de los directorios no, cuando esta en la carpeta admin la vista , no es conseguida...
    martes, 3 de diciembre de 2013 3:46
  • Revisemos lo de las Vistas. Si el controlador se llama "Admin", entonces hay que crear una subcarpeta que se llame "Admin" por debajo de Views. Dentro de la carpeta Admin, se crea un .cshtml por cada vista con el mismo nombre del método de acción. Por ejemplo, si un método llamado Administrar hace "return View(modelo)" entonces devolverá una vista llamada Administrar.cshtml situada en Views\Admin. Ojo, para usar esta sobrecarga, el modelo no puede ser de tipo String.
    martes, 3 de diciembre de 2013 6:59