2011-03-20 17 views
6

Si tengo un controlador y quiero devolver una vista en función de a qué va mi lógica condicional, ¿es posible? Tengo diferentes tipos de modelos que quiero insertar en una vista DEPENDIENDO de mi lógica condicional (declaraciones if) ¿Puedo hacer esto? y cómo haría estoDevuelve diferentes vistas en un controlador

Respuesta

16

Sure, return View() acepta un nombre de vista como su primer parámetro. Solo especifica una vista diferente.

Si tiene diferentes modelos que entran en la misma vista, intente fusionarlos, cree un modelo de contenedor (una propiedad por tipo de modelo y luego una enumeración para que las vistas sepan qué renderizar), use dinámico como el modelo en la vista, o crear una vista por modelo.

La primera y la última sería mi opción preferida, pero depende de los detalles.

2

Se puede hacer algo así en su controlador (este es un ejemplo mirando si se autheticated un usuario)

if (Request.IsAuthenticated) 
    return View("View1", new AuthenticatedViewModel(myValues1)); 
else 
    return View("View2", new AnonymousViewModel(myValues2)); 
Cuestiones relacionadas