本当に警告が何であるか、警告が何かをチェックしているか、警告が常にデフォルトで表示されていますか?
デフォルトでは、最も簡単な解決策は、偽の送信ボタンが押された最初のときに警告を表示し、偽の警告が表示されたときに実際の送信ボタンを有効にして表示することですボタンが消えます。あなたがチェックする必要がある場合
$('#yourformidhere').submit(function() {
$('#fakesubmitbutton').hide();
$('#realsubmitbutton'.show();
$(this).find(':submit').prop('disabled', 'false');
});
:その後、何と無効になり、当初と同じ場所で偽のボタンを配置し、jsの中にこのような何か:だから、HTML非表示にするページと表示して送信ボタンをを無効にしません何かサーバー側の場合、コントローラを介してページとモデルを返す必要があります。このページでは、隠しマーカーを使用して '1'とし、コントローラーではチェックを実行して、モデルフィールドでマーカーが '2'に変更された場合にページを返します。ユーザーはフォームを再度送信することができます。コントローラーのアクションで '2'がチェックされ、チェックがなければフォームの送信が許可されていることがわかります。
編集 - 例:
形態:
@using (Html.BeginForm()){
@Html.Hiddenfor(model => model.hidden)
@Html.EditorFor(model = model.data1)
<input type ="submit" value"submit"/>
}
ビューモデル:
public class someviewmodel{
public string data1 { get; set; }
public int hidden { get; set; }
}
コントローラ
public ActionResult forumsubmit(someviewmodel model)
{
//check to see if this is the first submission attempt
if (model.hidden == null){
//check for whatever you need regarding the warning e.g.
if (model.data1 == needswarning){
//add your warning message here if it is to appear on the page for example a viewbag
ViewBag.warning = "you've been warned"
//change hidden field to 1 to acknowledge first submission attempt
model.hidden = 1;
//returns view with information intact for second submission
return View(model);
}
}
//if you reach here in the controller action the hidden field is either not null or there is no need for a warning so you can now process the form and add info to db here.
return View("submitsuccess")
}
出典
2017-04-11 11:26:46
Rob
同じフォームを2回提出する必要がありますか?確認ダイアログを表示するだけでなく、 – JamieD77
はい、同じフォームを2回表示する必要があります。ダイアログボックスを表示することはできません。 – Vikram
これが役立つかどうかをご覧くださいhttp://stackoverflow.com/questions/2126747/how-to-supress-re-post-when-refreshing-a-page-asp-net-mvc – JamieD77