フォームには、POST 要求を送信する [PDF を表示] ボタンが含まれています。この投稿リクエストは、Content-disposition: inline
またはContent-disposition: attachment
http ヘッダーを使用して pdf ファイルを表示します。
Chrome でこのボタンをダブルクリックすると、おそらくリクエストが 2 回同時に実行されるため、コントローラーで例外が発生します。
送信ボタンをダブルクリックしてリクエストを1回だけ実行するようにするにはどうすればよいですか?
環境: ASP .NET MVC2 または Mono、jquery、jquery ui。
<form id="_form" method='post' target='_blank' action=''>
.. form fields and other submit buttons
<a href='#' id='_savepdf'>Show PDF</a>
</form>
<script type="text/javascript">
$(function () {
$('#_savepdf').button();
$('#_savepdf').click(function () {
$('#_form')[0].action= '/GetPDF';
$('#_form')[0].submit();
});
});
</script>
アップデート
ユーザーは、pdf ファイルを閉じて、このボタンをもう一度クリックまたはダブルクリックすることをお勧めします。同じユーザーからのコントローラーの同時実行のみを無効にする必要があります。コントローラが完了したら、ボタンをもう一度クリックできます。