none
COMO MOSTRAR UNA PARTIAL VIEW RRS feed

  • Pregunta

  • Hola nuevamente, hoy les quiero solicitar ayuda con el siguiente caso:

    Tengo una view (Formulario_Beneficiario) donde obtengo un dato y llamo al controlador Consultar_Beneficiario y este me devuelve una lista de registros  en la vista  Consultar_Beneficiario,  pero mi duda es la siguiente :

    Quiero mostrar en la View  Formulario_Beneficiario la respuesta del controlador Consultar Beneficiario, se que el controlador debe devolver una PartialView();, pero no como hacer para mostrar esa en Formulario_Beneficiario.

    Gracias


    giuseppe

    jueves, 18 de junio de 2015 0:18

Todas las respuestas

  • hola

    podrias usar el @Html.ReaderAction() indicando el action y controller que devolvera la partial view o sea en la view Formulario_Beneficiario podrias este renderaction

    analiza la explicacion de como usarlo en este video

    ASP.NET MVC  - Render Action

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 18 de junio de 2015 1:22
  • hola

    podrias usar el @Html.ReaderAction() indicando el action y controller que devolvera la partial view o sea en la view Formulario_Beneficiario podrias este renderaction

    analiza la explicacion de como usarlo en este video

    ASP.NET MVC  - Render Action

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    Vi el video, pero no me sirve de esa forma ya que yo necesito pasar al controlador un dato el cual el usuario lo debe ingresar en un input y al presionar un boton se llama al controlador que debe cargar la vista. :/

    giuseppe

    jueves, 18 de junio de 2015 1:39
  • hola

    pero no es que la carga de ese partialview no se da en conjunto con la view ?

    si es asi entonces podrias poner algun condicional en el model de la view para indicar que ese dato esta presente o no

    si esta puedes pasar parametros en la Html.RenderAction() usando en la view

    @if(Model.Prop1 != ""){
    
        Html.RenderAction("Nombreaction", "nombrecontroller ", new { nombreParam = Model.Prop1})
    
    }


    en el controller tendrias

    public class nombrecontroller {
    
       public ActionResult  Nombreaction(string nombreParam){
    
             //aqui codigo
    
             return PartialView();
    
       }
    
    }

    como veras puedes pasarle valores


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 18 de junio de 2015 1:58
  • No, la prtial View la cargo despues de tomar el dato desde un input, ya que la vista Partial me debe mostrar registros filtrador por el valor del input

    giuseppe

    jueves, 18 de junio de 2015 2:17
  • Hola Giuseppe,

    Lo que tienes que hacer es lo siguiente:

    En Form_Beneficiario tendrás el tag FORM que permitirá invocar al controlador ConsultarBeneficiario

    @using (Ajax.BeginForm("ConsultarBeneficiario", "MiController", routeValues: null, ajaxOptions: new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "Vista-Parcial" }, htmlAttributes: null))
    {
    	<input type="text" id="codigo" name="codigo" />
    
    	<input type="submit" value="Actualizar" />
    }
    
    <div id="Vista-Parcial">
    
    </div>


    En el controlador deberás tener lo siguiente:

    [HttpPost]
    public PartialViewResult ConsultarBeneficiario(string codigo)
    {
    	var mi_lista = db.MiEntidad
    								.Where(a => a.codigo.Contains(codigo));            	
    
    	return PartialView("VistaConsultarBeneficiario", mi_lista.ToList());
    }

    Este procedimiento hace que la vista VistaConsultarBeneficiario se "inserte" en el div Vista-Parcial del formulario principal.


    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.


    Willams Morales
    Arequipa - PERÚ



    jueves, 18 de junio de 2015 2:28
  • hola

    >>la prtial View la cargo despues de tomar el dato desde un input

    sigo pensado que la tecnica que mencione puedes aplicarla sin problemas, ya que el RenderAction lo habilitas cuando tienes un valor ingresado en el input

    pero bueno por lo que veo quieres algo mas dinamicos, en ese caso podrias usar jquery para inyectar el partialview dentro de un div

    Actualizar solo contenido de plantilla MVC 4

    la idea es que por medio de $.ajax puedas invocar el action y el html que retorne el partial lo ingreses al div que contendra la informacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 18 de junio de 2015 2:55