6

我有一个Ajax表单的搜索表单。表单中有一个DropDownList,在更改时应该刷新Ajax表单中的PartialView(通过GET请求)。但是,我不确定在通过GET请求取回结果后,如何刷新PartialView。ASP.NET MVC - 在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

什么是你的局部视图的HTML? – amurra 2010-03-25 17:10:41

回答

7

我的意思是,没有看到你的PartialView一个选项是包裹在PartialView一个div:

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

然后让你的Ajax调用在你的控制器动作将返回一个PartialViewResult并将结果加载到该div中:

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

非常感谢您的建议。我做了一些调整,并使其工作。 – 2010-03-25 18:23:23

0

$阿贾克斯({ 类型: “GET”, URL: “/搜索/搜索部分=” +部分+ “&乡=” +乡镇+ “&范围=” +范围, 数据类型:“HTML “, 成功:function(result){('#corners')。html(result); } });