2013-04-01 49 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 ... */ 
});