【发布时间】:2012-03-28 14:52:45
【问题描述】:
好的,我有一个在单击图像时调用的函数。由于某种原因,当我单击它时它只会调用一次,我有点不明白为什么。
这是我的 javascript(结合少量剃须刀),基本上它所做的只是调用控制器中的 post 方法,该方法返回部分视图并更新该部分视图。
function mFunction() {
@{ x = x = 1; }
$.post('/Home/_MyPartial', { 'param1': "@x" }, function(result) {
$('.myUpdatedDiv').html(result);
$('.anotherDiv').empty();
$('.anotherDiv').append('@x');
});
}
然后我有这样的标签
<a href="#" onclick="mFunction()">Hello</a>
它像我期望的那样完美地更新了视图,除了一些愚蠢的例外。
- 每次单击(多次)它都会击中控制器。所以我知道它是这样工作的
- 页面本身没有得到更新,并且没有第二次被替换。控制器成功返回部分视图,但 javascript 只更新一次。
因此,对于为什么它不会多次更新的任何帮助,我将不胜感激。
谢谢
编辑
好吧,假设我这样做:
@{ int x = 0; }
<script type="text/javascript">
function tester() {
@{ x++; }
$('.H').empty();
$('.H').append('@x');
}
</script>
<div class="H"></div>
<a href="#" onclick="tester()">Click</a>
点击标签会显示“1”,点击标签总是会显示“1”。这与仅渲染一次的剃须刀代码有关吗?有办法解决吗?
【问题讨论】:
-
最好显示所有相关元素的标记。这将有助于轻松回答您的问题。
-
@bbedward 浏览器是否缓存了请求?
-
@ShankarSangoli 用一个基本但完整的例子更新了我的答案
-
@Qpirate 我正在做一个不应被浏览器缓存的发布请求?
标签: javascript jquery html asp.net-mvc