Aunque puede anular la disposición del controlador como se ha sugerido en otra respuesta, en mi opinión, esto significa que los controladores están recibiendo solo demasiado involucrados en la determinación de lo que será la interfaz de usuario. Lo mejor es dejar esto puramente a las Vistas para decidir.
Lo más cercano a lo que está pidiendo es que hacer esto en su actual "~/Views/_ViewStart.cshtml"
:
@{
if(Context.Request.Path.StartsWith("/External", StringComparison.OrdinalIgnoreCase))
Layout = "~/Views/_ExternalLayout.cshtml";
else
Layout = "~/Views/_Layout.cshtml";
}
Dónde "~/Views/_ExternalLayout.cshtml"
es su diseño alternativo.
Es posible que desee comprobar el "/"
líder es correcto allí, no recuerdo si lo es.
Si coloca esto en el _ViewStart existente, cualquier vista que se esté renderizando en respuesta a una url que empiece por "/External"
usará este nuevo diseño, de lo contrario se usará el 'normal'.
Otro enfoque es usar la tabla de enrutamiento para agregar un valor de ruta que se puede usar aquí para tomar una decisión de diseño; pero he optado por este enfoque para hacerlo simple.
Voy a utilizar el mismo PlayerController para "/ External/View". Entonces, ¿debería de alguna manera especificar el enrutamiento? –
@NikitaMartyanov: he cambiado ligeramente mi respuesta ya que está reutilizando el mismo controlador, la solución original es excelente para diferentes controladores, pero no cuando se reutilizan vistas y controladores para diferentes URL. –
Gracias, Andras: utilicé este enfoque (también agregué la ruta para que "Exteranal/Vista" esté asignado a 'PlayerController' –