4

window.history.back() をテストするために使用している MVC ビューに次のコードがあります。

ここに画像の説明を入力

ユーザーが段落タグ内のリンク (赤で強調表示) をクリックすると、window.history.back() が期待どおりに実行されます。そのページで状態が維持された状態で、前のページに戻ります。ただし、ユーザーがボタンをクリックすると、同じ動作が得られません。現在のビューが再読み込みされるか、少なくとも現在のページの再読み込みが試行されます。しかし、それは失敗します。そして、jQuery が実行されるかどうかは関係ありません。または、ボタンの onClick 内に window.history.back() 呼び出しを配置し​​ても、同じことが起こります。

参考になりそうな情報。ボタンは HTML.BeginForm 内にあり、段落タグの行はそうではありません。

なぜこれが起こっているのか知っている人はいますか?

4

2 に答える 2

8

ブラウザーはおそらくボタンを送信ボタンとして解釈し、フォームを送信しているため、ページが更新されています。追加type="button"することでそれを防ぐことができます。

<button type="button">Cancel</button>
于 2013-04-01T19:45:42.010 に答える
4
$('#cancelButton').click(function(e){
    e.preventDefault();

    /* ... code ... */
});
于 2013-04-01T19:37:37.623 に答える