我有3个局部视图jQuery的.load().load()
视图1中:
//_yard.cshtml
@model Yard
<div>@Model.Name</div>
<div class="yard"></div>
@foreach(var house in Model.Houses)
{
<script type="text/javascript">
$(document).ready(function{
$(".yard").load("/community/Houses");
});
</script>
}
视图2
//_houses.cshtml
@model House
<div>@Model.Name<div>
<div class="house"></div>
@foreach(var level in Model.levels)
{
<script type="text/JavaScript">
$(document).ready(function{
$(".house").load("/Community/Levels");
});
</script>
}
视图3:
//_levels.cshtml
@model Level
<div>@Model.Name<div>
<div class="room"></div>
@foreach(var room in Model.Rooms)
{
<script type="text/JavaScript">
$(document).ready(function{
$(".room").load("/Community/Rooms");
});
</script>
}
将上述样品,显示了我加载使用jQuery Load()
另一视图内的View 1
,我然后加载View 2
withing View 1
,然后等等,然而,第一负载()工作正常,但subsequint负载不火。
我认为这是由于$(document).ready();
函数未被重置,但是,我不确定如何在每次加载时重置它。
问题解决 使用MVC默认模板在页面底部呈现jQuery脚本。我把它移到顶端,并且ajax加载工作。
我知道这没有意义,但它解决了这个问题。为了解决这个问题,我会在做一些更多的调查之后更新这个问题。
在附注中,纯粹基于您在上面提供的示例,我认为根本不使用JavaScript更有意义。当你执行你的@foreach时,我会把Html.RenderPartial()放在那里,而不是JavaScript,并在服务器端生成整个HTML,而不是在服务器上加载部分页面,然后从多个AJAX调用加载剩下的AJAX调用客户端。 – 2013-02-22 09:08:42
我必须使用ajax加载它,随后从各种Web服务中提取数据,随后的部分需要很长时间才能加载。 – 2013-02-22 09:32:38