我在MVC视图中有以下代码,我用来测试window.history.back()
如果用户单击段落标记内的链接(以红色突出显示),window.history.back()将按预期执行。它将我带回到上一页,并在该页面上维护状态。但是,如果用户单击该按钮,我不会得到相同的行为。重新加载当前视图,或者至少尝试重新加载当前页面。但它失败了。如果执行jQuery并不重要,或者我在Button onClick中调用window.history.back()调用,就会发生同样的事情。
可能有用的一条信息。该按钮位于HTML.BeginForm中,而段落标记中的行不是。
任何人都知道为什么会这样吗?
答案 0 :(得分:7)
浏览器可能会将按钮解释为提交按钮并提交表单,从而导致页面刷新。添加type="button"
会阻止这种情况。
<button type="button">Cancel</button>
答案 1 :(得分:3)
$('#cancelButton').click(function(e){
e.preventDefault();
/* ... code ... */
});