6

Mam formularz wyszukiwania, który jest formularzem Ajax. W formularzu znajduje się DropDownList, która po zmianie powinna odświeżyć PartialView w formularzu Ajax (za pomocą żądania GET). Jednak nie jestem pewien, co zrobić, aby odświeżyć PartialView po otrzymaniu moich wyników za pośrednictwem żądania GET.ASP.NET MVC - Odśwież PartialView, gdy zmieniono DropDownList

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

Jaki jest html w częściowym widoku? – amurra

Odpowiedz

7

Znaczy jedna opcja bez widząc PartialView jest owinąć PartialView w div:

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

wtedy wezwanie ajax działań w kontrolerze zwróci wynik PartialViewResult i załaduje wynik do tego elementu div:

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

Wielkie dzięki za tę sugestię. Zrobiłem trochę szczypanie i dostałem go do pracy. –

0

$ .ajax ({ typu: "GET", url: sekcja "?/Search/Szukaj section =" + "& m =" + m + "& zakres =" + zakres, dataType: „html ", sukces: funkcja (wynik) { $ ('# rogi'). Html (wynik); } });

Powiązane problemy