6

我有一个 Ajax 表单的搜索表单。表单中有一个 DropDownList,当它发生变化时,应该刷新 Ajax 表单中的 PartialView(通过 GET 请求)。但是,我不确定在通过 GET 请求取回结果后如何刷新 PartialView。

搜索.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>
4

2 回答 2

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);
            }
        });
于 2010-03-25T17:16:38.497 回答
0

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

于 2014-03-31T07:21:34.990 回答