none
Cambiar cierto contenido de la vista desde el controlador o cambiar cierto contenido de la vista según datos del controlador. RRS feed

  • Pregunta

  • Tengo los siguientes controladores:

    public ActionResult IxGestionActualizaciones()
    {
               
                return View();
    }
    public ActionResult IxGestionActualizaciones_Visualizar(string selectedID)
    {
                string Identificador = selectedID;
    
                Models.cPublicaciones Publicaciones_ = new Models.cPublicaciones();
                
                Publicaciones_.Inicializa(Identificador);
                Publicaciones_.RecuperaDatos();
                                       
                return View("IxGestionActualizaciones", Publicaciones_);
    }
    Necesito cambiar el contenido html, por ejemplo ocultar ciertos 'div', de la vista 'IxGestionActualizaciones' según sea llamada desde el controlador primero o segundo.

    sábado, 21 de noviembre de 2015 17:19

Respuestas

  • Hola Daniel-Motos,

    Creo que no hay necesidad de utilizar dos métodos de acción distintos si ambos derivan en la misma vista, en un extremo podrías sobrecargar el método:

    public ActionResult IxGestionActualizaciones()
    {
               
                return View();
    }
    public ActionResult IxGestionActualizaciones(string selectedID)
    {
                string Identificador = selectedID;
    
                Models.cPublicaciones Publicaciones_ = new Models.cPublicaciones();
                
                Publicaciones_.Inicializa(Identificador);
                Publicaciones_.RecuperaDatos();
                                       
                return View("IxGestionActualizaciones", Publicaciones_);
    }

    Pienso que podrías usar un sólo método y definir el comportamiento del mismo según el valor del parámetro, algo como lo siguiente:

    public ActionResult IxGestionActualizaciones(string selectedID)
    {
            if (selectedID != String.Empty)
            {
                    string Identificador = selectedID;
    
                    Models.cPublicaciones Publicaciones_ = new Models.cPublicaciones();
                
                    Publicaciones_.Inicializa(Identificador);
                    Publicaciones_.RecuperaDatos();
    
                    ViewBag.Vista = 0;
                                       
                    return View(Publicaciones_);
            }
            else
            {
                    ViewBag.Vista = 1;
                    return View();
            }
    }

    Uso un sólo método y envío la propiedad Vista a través de ViewBag, el valor define el comportamiento que tendrá en la vista:

    @if (ViewBag.Vista == 1)
    {
             /*Validar acciones*/
    }

    sábado, 21 de noviembre de 2015 17:58

Todas las respuestas

  • Hola Daniel-Motos,

    Creo que no hay necesidad de utilizar dos métodos de acción distintos si ambos derivan en la misma vista, en un extremo podrías sobrecargar el método:

    public ActionResult IxGestionActualizaciones()
    {
               
                return View();
    }
    public ActionResult IxGestionActualizaciones(string selectedID)
    {
                string Identificador = selectedID;
    
                Models.cPublicaciones Publicaciones_ = new Models.cPublicaciones();
                
                Publicaciones_.Inicializa(Identificador);
                Publicaciones_.RecuperaDatos();
                                       
                return View("IxGestionActualizaciones", Publicaciones_);
    }

    Pienso que podrías usar un sólo método y definir el comportamiento del mismo según el valor del parámetro, algo como lo siguiente:

    public ActionResult IxGestionActualizaciones(string selectedID)
    {
            if (selectedID != String.Empty)
            {
                    string Identificador = selectedID;
    
                    Models.cPublicaciones Publicaciones_ = new Models.cPublicaciones();
                
                    Publicaciones_.Inicializa(Identificador);
                    Publicaciones_.RecuperaDatos();
    
                    ViewBag.Vista = 0;
                                       
                    return View(Publicaciones_);
            }
            else
            {
                    ViewBag.Vista = 1;
                    return View();
            }
    }

    Uso un sólo método y envío la propiedad Vista a través de ViewBag, el valor define el comportamiento que tendrá en la vista:

    @if (ViewBag.Vista == 1)
    {
             /*Validar acciones*/
    }

    sábado, 21 de noviembre de 2015 17:58
  • Gracias por responder. Me ha servido de gran ayuda.
    lunes, 23 de noviembre de 2015 6:03