6

Tôi có một mẫu tìm kiếm là một biểu mẫu Ajax. Trong biểu mẫu là một DropDownList, khi được thay đổi, nên làm mới một PartialView trong biểu mẫu Ajax (thông qua một yêu cầu GET). Tuy nhiên, tôi không chắc chắn phải làm gì để làm mới PartialView sau khi tôi lấy lại kết quả của mình thông qua yêu cầu GET.ASP.NET MVC - Làm mới PartialView khi DropDownList thay đổi

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

html của chế độ xem một phần của bạn là gì? – amurra

Trả lời

7

Ý tôi là một lựa chọn mà không thấy PartialView của bạn là để quấn PartialView trong một div:

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

Sau đó có cuộc gọi ajax của bạn một hành động trong điều khiển của bạn sẽ trả về PartialViewResult và tải kết quả vào div đó:

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

Cảm ơn rất nhiều vì gợi ý đó. Tôi đã làm một chút tinh chỉnh và làm cho nó hoạt động. –

0

$ .ajax ({ loại: "GET", url: "?/Tìm kiếm/Search section =" + phần + "& thị trấn =" + thị trấn + "& phạm vi =" + phạm vi, datatype: "html ", thành công: hàm (kết quả) { $ ('# góc'). Html (kết quả); } });

Các vấn đề liên quan