【发布时间】:2015-06-14 15:29:14
【问题描述】:
我正在尝试使用JQuery 在ASP.Net MVC 应用程序中重新加载PartialView。
我的代码:
<div class="partial">
@Html.Action("GetRemainingSeats", "Layout")
</div>
<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")"></script>
<script type="text/javascript">
setTimeout(
$(function () {
setInterval(function () { $('#partial').load('@Html.Action("GetRemainingSeats", "Layout")'); }, 5000)
}), 6000);
</script>
部分视图已正确加载,但之后会立即再次执行操作,无需等待setTimeout 函数计时器结束。之后它将停止做任何事情。
编辑:
在PartialView 里面有一张桌子,上面有电影院的演出以及每场演出的剩余座位数。所以我希望它在几秒钟内更新,以便员工可以看到还有多少座位可供演出。
我正在使用超时和setinterval 函数,因为在pageload 上调用了该操作。之后我希望它在开始间隔之前等待几秒钟
【问题讨论】:
-
@Html.Action()是错字吗(应该是@Url.Action())? -
您的问题缺少一件事。你想达到什么目标?它将帮助其他人解决问题,否则您的代码似乎在浏览器中玩捉迷藏。
-
还要说明需要同时使用
setTimeout和setInterval.. -
Url.Action() 不会做任何事情,就像使用 /Layout/GetRemainingSeats 不会做任何事情一样。 Html.Action() 将运行,但只运行一次,无需等待超时。
-
当然
Html.Action只会运行一次。它是一种调用子操作的方法,并且仅在呈现视图时才解析一次。你需要Url.Action()。
标签: javascript jquery asp.net asp.net-mvc-5 asp.net-mvc-partialview