我有一个包含多个部分视图的页面(主视图)。我使用ajax将这些部分视图加载到特定的div。
我的问题是我想按顺序加载这些div:第一个div,然后是第二个......但我得到的是页面加载正常但部分视图外观的顺序不正确。有没有办法强制加载部分视图的顺序?
答案 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)
})
}