6

Tengo un formulario de búsqueda que es un formulario Ajax. Dentro del formulario hay una DropDownList que, cuando se modifique, debe actualizar una vista parcial dentro del formulario Ajax (a través de una solicitud GET). Sin embargo, no estoy seguro de qué hacer para actualizar el PartialView después de recuperar mis resultados a través de la solicitud GET.ASP.NET MVC - Actualizar Vista parcial cuando DropDownList cambió

Search.aspx

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Search 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#Sections").change(function() { 

      var section = $("#Sections").val(); 
      var township = $("#Townships").val(); 
      var range = $("#Ranges").val(); 

      $.ajax({ 
       type: "GET", 
       url: "Search/Search?section=" + section + "&township=" + township + "&range=" + range, 
       contentType: "application/json; charset=utf-8", 
       dataType: "html", 
       success: function (result) { 
        // What should I do here to refresh PartialView? 
       } 
      }); 
     }); 

    }); 
</script> 

    <h2>Search</h2> 

    <%--The line below is a workaround for a VB/ASPX designer bug--%> 
    <%=""%> 
    <% Using Ajax.BeginForm("Search", New AjaxOptions With {.UpdateTargetId = "searchResults", .LoadingElementId = "loader"})%>   
     Township <%= Html.DropDownList("Townships")%> 
     Range <%= Html.DropDownList("Ranges")%> 
     Section <%= Html.DropDownList("Sections")%> 

     <% Html.RenderPartial("Corners")%> 

     <input type="submit" value="Search" />   
     <span id="loader">Searching...</span> 
    <% End Using%> 
    <div id="searchResults"></div> 

</asp:Content> 
+0

¿Cuál es el html de su vista parcial? – amurra

Respuesta

7

me refiero a una opción sin ver su PartialView es envolver el PartialView en un div:

<div id="corners"><% Html.RenderPartial("Corners")%></div> 

Después haga que su llamada ajax una acción en el controlador que devolverá un PartialViewResult y cargará el resultado en ese div:

$.ajax({ 
      type: "GET", 
      url: "Search/Search?section=" + section + "&township=" + township + "&range=" + range, 
      dataType: "html", 
      success: function (result) { 
       $('#corners').html(result); 
      } 
     }); 
+1

Muchas gracias por esa sugerencia. Hice un pequeño ajuste y lo hice funcionar. –

0

$ .ajax ({ tipo: "GET", url: "?/Buscar/Buscar section =" + + sección "& municipio =" + + municipio "& rango =" + rango, tipoDatos: "html ", éxito: función (resultado) { $ ('# esquinas'). Html (resultado); } });

Cuestiones relacionadas