使用Ajax命令加载div(部分视图)

时间:2014-03-10 15:07:04

标签: ajax asp.net-mvc asp.net-mvc-partialview

我有一个包含多个部分视图的页面(主视图)。我使用ajax将这些部分视图加载到特定的div。

我的问题是我想按顺序加载这些div:第一个div,然后是第二个......但我得到的是页面加载正常但部分视图外观的顺序不正确。有没有办法强制加载部分视图的顺序?

1 个答案:

答案 0 :(得分:0)

由于你是通过ajax加载它们,你需要加载第二个div作为加载第一个div的ajax的回调,并且加载第三个div作为加载第二个div的ajax的回调DIV。像这样:

$(document).ready(function() {
    $.ajax({
        url : '/Controller/Div1Action', // first div url
        type: 'GET',
        success: LoadSecondDiv
    });
});

function LoadSecondDiv() {
    $.ajax({
        url : '/Controller/Div2Action', // second div url
        type: 'GET',
        success: LoadThirdDiv
    });
}

function LoadThirdDiv() {
    $.ajax({
        url : '/Controller/Div3Action', // third div url
        type: 'GET'
    });
}

您可能希望根据div的内容为函数选择更好的名称。

根据评论进行更新:如果要将其包装在匿名函数中,您将需要调用该函数而不是仅仅放下函数名称:

$.ajax({
    url: '/LoadingPartials/LoadContact',
    contentType: 'application/html; charset=utf-8',
    type: 'GET',
    dataType: 'html'
}).success(function (result) {
    $("#AjaxContactGrid").html(result);
    LoadInsurance(); // Don't forget the parentheses here
});

function LoadInsurance() {
    $.ajax({
        url: '/LoadingPartials/LoadInsurance',
        contentType: 'application/html; charset=utf-8',
        type: 'GET',
        dataType: 'html' }).success(function (result) {
            $("#AjaxLIGrid").html(result);
            // Call function to load 3rd div here (make sure to include the parentheses to actually call it)
    })
}