Cuando un usuario visita mi sitio, puede haber un template=foo
pasado en la cadena de consulta. Este valor se está verificando y almacenando en el Session
.¿Busca .cshtml en varias ubicaciones en MVC 3?
Mi diseño de archivo se ve así:
- Views/
- Templates/
- test1/
- Home
- Index.cshtml
- test2/
- Home
- List.cshtml
- Home/
- Index.cshtml
Básicamente, si un usuario solicita Index
con template=test1
, Quiero usar Views/Templates/test1/Index.cshtml
. Si tienen template=test2
, quiero usar Views/Home/Index.cshtml
(porque /Views/Templates/test2/Home/Index.cshtml
no existe). Y si no pasan una plantilla, entonces debería ir directamente al Views/Home
.
Soy nuevo en MVC y .NET en general, así que no estoy seguro de dónde empezar a buscar. Estoy usando MVC3 y Razor para el motor de visualización.
No estoy seguro si funciona, pero tratar de devolver la vista por 'volver Vista (string.Concat (Request.QueryString [ "template"], "/ Index")) ' –
Un enfoque más elegante sería derivar de la clase Controller y anular el método" View ", si es posible –