none
Cargar vista parcial en div. RRS feed

  • Pregunta

  • Hola a todos!!

    Mi cuestión es sobre cargar una vista parcial, en un div, llamándola desde un controlador.

    He podido cargar vistas parciales con el helper @Ajax.ActionLink, pero precisamente se activa al pulsar un vínculo, y entonces carga la vista parcial en el div que le indique. 

    ¿Hay alguna forma similar que pueda cargar la vista desde un controlador?

    Tengo un PartialViewResult llamado 'Error', el cual devuelve la vista parcial 'MessajeError'.

    Mi intención es, redireccionar a  'Error', desde el controlador "OperationController", para que muestre la vista 'MessajeError' en un div.

    Espero haberme explicado, y gracias por la ayuda!



    AUR

    jueves, 16 de octubre de 2014 17:06

Respuestas

  • La solución fue: 

    El 'Action' desde el cual quería mostrar el mensaje, convertirlo en Ajax.BeginForm, el cual devuelve el código javascript para actualizar el div que contendría la vista parcial:

    public JavaScriptResult(string div){
           /*...*/
           return JavaScript("$('#partials').load("+"@Url.Action("_Action","Controller")"+");")
    }



    AUR

    • Marcado como respuesta Ale Uribe miércoles, 11 de febrero de 2015 15:57
    miércoles, 11 de febrero de 2015 15:57

Todas las respuestas

  • >>¿Hay alguna forma similar que pueda cargar la vista desde un controlador?

    entiendo que por controlador te refieres a un action, no ?

    si es asi desd eun action devuelves una view o partialview, no veo que quieres cargar desde un controlador

    >>Mi intención es, redireccionar a  'Error', desde el controlador "OperationController", para que muestre la vista 'MessajeError' en un div.

    podrias usar el RedirectToAction() ante un error y despues quien lo invoco tomara esa partialview y la ubicara en el div

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 16 de octubre de 2014 17:45
  • Hola, gracias por responder.

    Cuando escribo >>¿Hay alguna forma similar que pueda cargar la vista desde un controlador?, 

    es porque he realizado las llamadas desde las vistas, utilizando @Ajax.ActionLink. Y sí, obviamente tengo un PartialViewResult.

    Ya he intentado hacerlo como sugieres, con RedirectToAction, pero no me muestra la vista parcial en el div. Creo que es la parte que me hace falta, indicarle en que div la debe cargar.


    AUR

    jueves, 16 de octubre de 2014 18:15
  • hola

    pero entonces lo que no funciona es el @Ajax.ActionLink ?

    como le indicas en que div es el destino donde debe ubicar el partial que devuelve el action

    cuando redireccionas lo haces a un action que tambien devuelve un partialview ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 16 de octubre de 2014 19:10
  • Gracias de nuevo!

    El @Ajax.ActionLink si funciona, lo utilizo cuando requiero cargar, por ejemplo desde un menú una vista parcial en el div. Pero ese @Ajax.ActionLink está en una vista, que es la que contiene el menú.

    Lo que yo quiero, es desde un Action, que tengo en el controlador 'Operation', cargar en el div  la vista parcial  'MessajeError' que devuelve el PartialViewResult 'Error' del controlador 'AllErrors', es decir, sin un enlace o botón, sino que, cuando se presente el error cargar directamente la vista parcial en el div. 

    Ya intenté con el RedirectToAction, y sí redirecciona, pero no carga la vista en el div.

    Lo que pregunto es de qué forma, puedo utilizar, por ejemplo (se me ocurre), el RedirectToAction y Ajax.ActionLink combinados para cargar la vista parcial en el div.


    AUR

    jueves, 16 de octubre de 2014 21:53
  • La solución fue: 

    El 'Action' desde el cual quería mostrar el mensaje, convertirlo en Ajax.BeginForm, el cual devuelve el código javascript para actualizar el div que contendría la vista parcial:

    public JavaScriptResult(string div){
           /*...*/
           return JavaScript("$('#partials').load("+"@Url.Action("_Action","Controller")"+");")
    }



    AUR

    • Marcado como respuesta Ale Uribe miércoles, 11 de febrero de 2015 15:57
    miércoles, 11 de febrero de 2015 15:57