jQuery 加载新视图,然后加载局部视图

jQuery to load new view and then load partial view

我有一个 asp.net MVC 视图。单击此视图上的按钮应将用户重定向到另一个视图。第二个视图是用很少的部分视图构建的。其中一个局部视图需要很长时间才能加载,所以我不希望页面加载有这种开销,我希望局部视图在 ajax 调用时变为 运行,这样它就可以 运行 异步。但是在重定向时,我想 return 第二个视图与其他局部视图。 请为此提出解决方法。

 $(document).on('click', '#buttonClick', function () {
    window.location = '/some/someAction?id=123';
     $.ajax ({
        type: 'GET',
        url: '/some/LoadPartialView?id=123',

        success: function(data){
             $('#timeTakingPartialView').html(data);

        }
    });

});

Window.location 在 ajax 调用后重定向到第二个视图。所以重新加载正在跨过 ajax 调用。

如果我没理解错的话,你想在调用主视图之前加载那个局部视图。我不认为这是可能的。我建议在第二个视图上添加此部分视图 "lazy" 加载。所以对于第一个视图你只需要添加按钮点击事件:

$(document).on('click', '#buttonClick', function () {
    window.location = '/some/someAction?id=123'; 
});

并且当您定位到第二个视图 (someAction) 时,您可以在加载 DOM 时加载就绪事件:

$(document).ready(function () {
     $.ajax ({
        type: 'GET',
        url: '/some/LoadPartialView?id=123',

        success: function(data){
             $('#timeTakingPartialView').html(data);
        }
    });
});

所以,加载缓慢的局部视图将被分离。