2010-03-25 2 views
1

Когда я изменяю выделение в 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> 

ответ

2

Ничего, я понял это. Я не использовал свойство элемента управления правильно. Таким образом, это создавало иллюзию, что разметка не меняется.

+1

На стороне заметки, вызов ajax не должен обновлять функцию «просмотр-источник» большинства браузеров. Ajax-вызовы обычно изменяют только DOM. –

+0

@NickLarsen: Спасибо, что указали это. Как глупо мне не понимать этого. :) –

Смежные вопросы