En mi aplicación, necesito cargar la misma vista desde dos controladores diferentes sin colocar la vista en el directorio de vistas compartidas.Asp.net MVC: ¿Puedo cargar una vista desde una carpeta de vista diferente?
Básicamente tengo esta estructura de carpetas
- controladores
- EventsController.cs
- SearchController.cs
- Vistas
- Eventos
- Preview.aspx
- Buscar
- Eventos
básicamente la imagen es lo mismo que aquí en desbordamiento de pila. Obtendrá una vista previa de un grupo de preguntas en el enlace de preguntas, pero también obtendrá una página con el mismo formato cuando haga una búsqueda en la barra de búsqueda. Las vistas y los modelos de vista son presumiblemente idénticos.
Dado que la vista que necesito para la búsqueda es exactamente la misma que la vista que necesito para los eventos, me gustaría volver a utilizar la misma vista. Sin embargo, me gustaría evitar el uso del directorio compartido para esta vista específica.
Así que mi pregunta dos parte es ---
- Es esto posible, y si es así, ¿cómo?
- ¿Es esta una mala práctica?
Si sigo este enfoque, tendré vistas idénticas en la carpeta Eventos y en la carpeta Buscar, que no es un factor decisivo, solo trato de mantenerlo SECO. No necesito una vista parcial que represente todo en la vista, sería simplemente extraño. –
¿Pero realmente está representando todo en la vista? Si nada más, ¿el título no sería diferente? También sugeriría que si realmente es exactamente la misma página, ¿por qué no usar una acción infantil para llamar a la otra página? –
Tienes razón, podría llamarlo 'Eventos/Búsqueda' y mantenerlo en el mismo controlador. Porque sí, todo es muy idéntico. El título es dinámico, como lo es con todas mis vistas, y se genera en ViewModel. –