none
crear vista desde el controlador RRS feed

  • Pregunta

  • Hola, quisiera saber como puedo configurar las vistas desde el controlador, el caso es que tengo 2 tablas y debo combinar datos de ambas tablas en una sola vista. Puedo hacer esto desde el controlador??

    Saludos cordiales

    martes, 11 de enero de 2011 20:49

Respuestas

  • Hola, yo lo que hice fue crearme un viewmodel y en el controlador le enviaba a la vista los datos que quería mostrar. En mi caso era un ejemplo de una agenda con contactos y grupos, y le mandaba dentro del viewmodel la información del contacto y la lista de grupos.

    Un saludo.

    • Propuesto como respuesta eduard tomàsMVP miércoles, 12 de enero de 2011 14:51
    • Marcado como respuesta Eder Costa viernes, 5 de octubre de 2012 14:26
    martes, 11 de enero de 2011 20:52
  • Exacto.

    No es que puedas hacerlo desde el controlador: es que debes hacerlo allí.
    Recuerda: el controlador accede al modelo, y ese devuelve los resultados (siendo puristas el propio modelo devolvería los resultados combinados). Luego pasas el resultado que te devuelve el modelo a la vista, usando return View(data); donde data es el objeto con los datos que tienes. Entonces la vista puede acceder al resultado pasado por el controlador usando la propiedad Model.

    El concepto de viewmodel que menciona Juan, es cuando creamos clases especiales que sirven para encapsular los datos que nos devuelve el modelo, para adaptarlos a las necesidades de una vista. En este caso el controlador accede al modelo, con los datos crea un viewmodel que adapta esos datos a una vista y pasa ese viewmodel a la vista con la misma sintaxis que antes...

    Se ha escrito mucho sobre si usar viewmodels o no (pasar directamente clases del Modelo a las vistas). Este post de Hadi Hariri habla sobre el tema y es un must-read: http://hadihariri.com/2011/01/02/that-dreaded-m-in-asp-net-mvc/


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa viernes, 5 de octubre de 2012 14:27
    miércoles, 12 de enero de 2011 14:56

Todas las respuestas

  • Hola, yo lo que hice fue crearme un viewmodel y en el controlador le enviaba a la vista los datos que quería mostrar. En mi caso era un ejemplo de una agenda con contactos y grupos, y le mandaba dentro del viewmodel la información del contacto y la lista de grupos.

    Un saludo.

    • Propuesto como respuesta eduard tomàsMVP miércoles, 12 de enero de 2011 14:51
    • Marcado como respuesta Eder Costa viernes, 5 de octubre de 2012 14:26
    martes, 11 de enero de 2011 20:52
  • Exacto.

    No es que puedas hacerlo desde el controlador: es que debes hacerlo allí.
    Recuerda: el controlador accede al modelo, y ese devuelve los resultados (siendo puristas el propio modelo devolvería los resultados combinados). Luego pasas el resultado que te devuelve el modelo a la vista, usando return View(data); donde data es el objeto con los datos que tienes. Entonces la vista puede acceder al resultado pasado por el controlador usando la propiedad Model.

    El concepto de viewmodel que menciona Juan, es cuando creamos clases especiales que sirven para encapsular los datos que nos devuelve el modelo, para adaptarlos a las necesidades de una vista. En este caso el controlador accede al modelo, con los datos crea un viewmodel que adapta esos datos a una vista y pasa ese viewmodel a la vista con la misma sintaxis que antes...

    Se ha escrito mucho sobre si usar viewmodels o no (pasar directamente clases del Modelo a las vistas). Este post de Hadi Hariri habla sobre el tema y es un must-read: http://hadihariri.com/2011/01/02/that-dreaded-m-in-asp-net-mvc/


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa viernes, 5 de octubre de 2012 14:27
    miércoles, 12 de enero de 2011 14:56