jQuery .load无法在ASP.Net MVC中运行

Ste*_*eve 0 asp.net-mvc jquery

我试图在ASP.Net MVC页面上进行jQuery AJAX调用.我可以在调试器中单步调试回调函数,看看javascript正在执行,但是没有更新.

<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>
Run Code Online (Sandbox Code Playgroud)

呼叫$('homeContent').load()正在发挥作用.我可以确认我有数据,但div没有更新.

Dav*_*ale 5

假设这homeContent是div的id,你需要在其前面加上一个哈希:

 $('#homeContent').load('Home/Mission');
Run Code Online (Sandbox Code Playgroud)

如果是类,则在其前面加上句点:

$('.homeContent').load('Home/Mission');
Run Code Online (Sandbox Code Playgroud)

JQuery使用CSS选择器.

-

如果您的AJAX调用失败,那么它将以静默方式执行(您可能从服务器获得错误500,这在AJAX调用中隐藏,除非您在完整的.ajaxJQuery方法上挂接错误委托).

使用像Fiddler这样的东西检查是否从服务器返回了数据.