窗口.history.back()的不一致性

4

我在MVC视图中写下了以下代码,用于测试window.history.back():

enter image description here

如果用户点击段落标签中突出显示的链接,window.history.back()会按照我的预期执行。它将带我回到上一个页面,并保留该页面的状态。然而,如果用户点击按钮,我就不会得到相同的行为。当前视图被重新加载,或者至少试图重新加载当前页面。但是它失败了。无论是否执行jQuery,或者在Button onClick中放置window.history.back()调用,都会发生相同的事情。

有一个可能有用的信息片段。按钮位于HTML.BeginForm中,而段落标签中的行则不是。

有人知道这是为什么吗?


2
添加 type="button" 以确保它不被解释为提交按钮。 - Kevin B
@KevinB - 就是这样!我犯了一个愚蠢的错误。如果你把它作为答案创建,我会接受它的。 - Randy Minder
2个回答

8
浏览器可能会把按钮解释为提交按钮并提交表单,导致页面刷新。添加type="button"可以防止这种情况发生。
<button type="button">Cancel</button>

这节省了我的时间。非常感谢你。对我来说,甚至发生在不在表单内的按钮上:/ 这完全解决了它。 - Niklas S.

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接