我的单个视图页面上有多个局部视图。部分视图动态加载。我希望部分视图加载1乘1.是否可以这样做?
答案 0 :(得分: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 CallBack of Load Event。
<强> 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
});
});
});
});
如果您注意到上述代码。成功加载第一个局部视图后,第二个局部视图开始加载并顺序加载第三个。
希望这会对你有帮助......
答案 1 :(得分:1)
这种方法对您有用:
Render Partial Views using JQuery in MVC3
它使用jquery和.load()
来调用将您的部分视图呈现为html并将其返回到javascript的操作,以后您可以将其放在任何您想要的位置。
更新:
如果你想一个接一个地按顺序加载它们,你可以使用jquery的load()的完整回调来链接一个接一个。
如果您希望在特定时间或间隔加载它们,可以使用javascript的setTimeout