私は大量のコンテンツと「お問い合わせ」フォームを持つMVCページを持っています。送信したら、フォームを非表示にして確認メッセージを表示するだけです。連絡フォームを非表示にして確認メッセージを表示
これにはどのような方法が最適ですか?私はすべてのチュートリアルで別々の「ありがとう」コントローラとビューを使用していることがわかりましたが、これは私のページの内容を繰り返す必要があるため直感的ではないようです。
ありがとうございます。
私は大量のコンテンツと「お問い合わせ」フォームを持つMVCページを持っています。送信したら、フォームを非表示にして確認メッセージを表示するだけです。連絡フォームを非表示にして確認メッセージを表示
これにはどのような方法が最適ですか?私はすべてのチュートリアルで別々の「ありがとう」コントローラとビューを使用していることがわかりましたが、これは私のページの内容を繰り返す必要があるため直感的ではないようです。
ありがとうございます。
あなたは部分図、代わりにHtml.BeginForm
のAjax.BeginForm
を使用することができます:あなたは、同じページにとどまる場合でも、質問に答えるために、jqueryのを使用します。これは、あなたが別のコントローラとビューを言及したときに読んだものかもしれません。部分ビューは、さまざまなビューを含むビューで完全に再利用できます。
ページが送信されるときに変数を設定し、ページがポストバックするときにその変数をチェックすることができます。最初にユーザーがページに入ると、submitted
の値はfalseになるので、投稿ページが常に最初に表示されます。例えば
psuedo:
if (!submitted)
// Display submission form
else
// Display thank you form.
危険です。 PRG-http://en.wikipedia.org/wiki/Post/Redirect/Getを使用すると、リフレッシュが再送信される可能性があります。 が
$('#myform').submit(function() {
var form = $(this);
$.post(
form.attr('action'),
form.serialize(),
success: function(response) {
form.hide();
},
failure: function(respones) {
form.addClass('error');
}
);
return false;
});