2010-12-05 42 views
0

我想在ASP.Net MVC页面上做一个jQuery AJAX调用。我可以在调试器中逐步调用回调函数,并看到JavaScript正在执行,但不更新。jQuery .load不工作在ASP.Net MVC

<asp:Content ID="Content2" ContentPlaceHolderID="MenuContent" runat="server"> 

<% Html.RenderPartial("homeMenu"); %> 

<script type="text/javascript"> 
    InitHomeMenu('homeMenu', function (menuItem) { 
     var id = menuItem.attr('id'); 
     if (id = 'menuMission') { 
      $('homeContent').load('Home/Mission'); 
     } 
     else if (id = 'menuSuggestions') { 
      $('homeContent').load('Home/Suggestions'); 
     } 

    }); 
</script> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> 
    <div id="homeContent"> 
     <% string control = ViewData["Control"] != null ? ViewData["Control"].ToString() : "Mission"; 
     Html.RenderPartial(control); %> 
    </div> 
</asp:Content> 

致电$('homeContent').load()正在工作。我可以确认我有数据,但该div不更新。

回答

3

尝试用==

if (id = 'menuMission') 

if (id == 'menuMission') 
5

假设homeContent是div的,你需要用哈希前缀它的ID:

$('#homeContent').load('Home/Mission'); 

如果是,则类与周期前缀是:

$('.homeContent').load('Home/Mission'); 

jQuery使用CSS选择。

-

如果你的AJAX调用失败,然后它会做这样默默的(你可能会从服务器上得到一个错误500,这是隐藏在Ajax调用,除非你挂钩的错误代表的全JQuery方法)。

检查使用类似Fiddler之类的东西从服务器返回数据。

+0

由于替换=,它是id。我从哈希开始,再次尝试,然后将“homeContent”更改为类,并尝试使用该句点。它没有任何作用。 JavaScript执行没有错误。 – Steve 2010-12-05 21:24:45

+0

您可能仍然会收到服务器错误,该脚本不会抛出该错误。尝试使用Fiddler2之类的功能来监控网络流量,以检查数据是否正在返回。 – 2010-12-05 22:02:51