2

我的单视图页面上有多个部分视图。部分视图动态加载。而且我希望部分视图按 1 加载。可以这样做吗?

4

2 回答 2

4

在您的视图中,保留三个 Div 并在某些属性中分配 Url 详细信息,如下所示。

示例 HTML

<div id="Div1" attr-Url="@Url.Action("ActionName", "ControllerName", 
                                                    new { area = "Area Name" })">
</div>

<div id="Div2" attr-Url="@Url.Action("ActionName", "ControllerName", 
                                                    new { area = "Area Name" })">
</div>

<div id="Div3" attr-Url="@Url.Action("ActionName", "ControllerName", 
                                                    new { area = "Area Name" })">
</div>

现在,您可以使用 Load Event 的 Success CallBack。

jQuery

$(document).ready(function () {
    var url = $('Div1').attr('attr-Url');
    $('Div1').load(url, function () {

        //Success callback
        url = $('Div2').attr('attr-Url2');
        $('Div2').load(url, function () {

            //Success callback
            url = $('Div3').attr('attr-Url3');
            $('Div3').load(url, function () {

                //Success callback
            }); 
        });
    });
});

如果你注意到上面的代码。成功加载第一个局部视图后,第二个局部视图开始加载,然后依次加载第三个。

希望对你有帮助...

于 2013-04-03T16:32:58.467 回答
1

这种方法可能对您有用:

在 MVC3 中使用 JQuery 渲染局部视图

它使用 jquery 和.load(), 来调用将您的部分视图呈现为 html 并将其返回到 javascript 的操作,您稍后可以将其放置在您想要的任何位置。

更新:

如果你想按顺序加载,一个接一个,你可以使用jquery的load()的完整回调一个接一个地链接。

如果您想让它们在特定时间或间隔加载,您可以使用 javascript 的setTimeout

于 2013-04-03T13:34:32.160 回答