2013-04-01 19 views
2

我在MVC视图下面的代码,我使用如果用户点击该链接,以测试window.history.back()不一致性与window.history.back()

enter image description here

(用红色突出显示),window.history.back()按我的预期执行。它让我回到前一页,并在该页面上维护状态。但是,如果用户单击按钮,我不会得到相同的行为。重新加载当前视图,或至少尝试重新加载当前页面。但它失败了。如果jQuery被执行,或者我把window.history.back()调用放在Button onClick中,那也没有关系,同样的事情会发生。

一条可能有帮助的信息。该按钮位于HTML.BeginForm中,而段落标记中的行不是。

任何人都知道为什么会发生这种情况?

+2

add'type =“button”'确保它不被解释为提交按钮。 –

+0

@KevinB - 就是这样!愚蠢的疏忽对我来说。如果你创建这个答案,我会接受它。 –

回答

7

浏览器可能会将该按钮解释为提交按钮并提交表单,从而导致页面刷新。添加type="button"将防止这种情况。

<button type="button">Cancel</button> 
+0

这节省了我的时间。非常感谢你。它也发生在甚至不在我的表格内的按钮上:/ 这完全解决了这个问题。 – MrPixelDream

3
$('#cancelButton').click(function(e){ 
    e.preventDefault(); 

    /* ... code ... */ 
});