Когда я изменяю выделение в DropDownList, PartialView обновляется через запрос GET. При обновлении PartialView с помощью функции jQuery html() возвращаемый html корректен, но когда он отображается в браузере, это неверно. Например, некоторые флажки в PartialView должны быть включены, но они остаются отключенными, хотя возвращаемый html говорит, что они должны быть. Когда я использую источник просмотра в браузере, html никогда не обновляется.ASP.NET MVC - PartialView html не изменяется с помощью jQuery html() call
Я немного озадачен. Мысли?
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();
$.get("Search/Search?section=" + section + "&township=" + township + "&range=" + range,
function (response) {
$("#cornerDiv").html(response)
});
});
});
</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")%>
<div id="cornerDiv">
<% Html.RenderPartial("Corners")%>
</div>
<input type="submit" value="Search" />
<span id="loader">Searching...</span>
<% End Using%>
<div id="searchResults"></div>
</asp:Content>
На стороне заметки, вызов ajax не должен обновлять функцию «просмотр-источник» большинства браузеров. Ajax-вызовы обычно изменяют только DOM. –
@NickLarsen: Спасибо, что указали это. Как глупо мне не понимать этого. :) –