ASP.NET MVC — обновить PartialView при изменении DropDownList

У меня есть форма поиска, которая является формой Ajax. Внутри формы находится DropDownList, который при изменении должен обновлять PartialView в форме Ajax (через запрос GET). Однако я не уверен, что делать, чтобы обновить PartialView после того, как я верну свои результаты через запрос GET.

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>

person Bryan Roth    schedule 25.03.2010    source источник
comment
Каков html вашего частичного просмотра?   -  person amurra    schedule 25.03.2010


Ответы (2)


Я имею в виду, что один из вариантов, не видя вашего 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);
            }
        });
person amurra    schedule 25.03.2010
comment
Большое спасибо за это предложение. Я сделал небольшую настройку и заставил его работать. - person Bryan Roth; 25.03.2010

$.ajax({ type: "GET", url: "/Search/Search?section=" + section + "&township=" + township + "&range=" + range, dataType: "html", успех: функция (результат ) { $('#corners').html(результат); } });

person mukesh vyas    schedule 31.03.2014