我有一個MVC頁面,其中包含大量內容和「聯繫我們」表單。提交後,我只想隱藏表單並顯示確認消息。隱藏聯繫表單並顯示確認消息
解決此問題的最佳方法是什麼?我發現所有教程都使用單獨的「謝謝」控制器和視圖,但這似乎與直覺相反,因爲我當然必須重複我的頁面內容。
預先感謝您。
我有一個MVC頁面,其中包含大量內容和「聯繫我們」表單。提交後,我只想隱藏表單並顯示確認消息。隱藏聯繫表單並顯示確認消息
解決此問題的最佳方法是什麼?我發現所有教程都使用單獨的「謝謝」控制器和視圖,但這似乎與直覺相反,因爲我當然必須重複我的頁面內容。
預先感謝您。
您可以使用局部視圖和Ajax.BeginForm
,而不是Html.BeginForm
。這可能是你在讀到另一個控制器和視圖時讀到的內容。部分視圖可以在各種包含視圖中完美重用。
您可以在頁面提交時設置變量,然後在頁面回傳時檢查該變量。用戶首次進入該頁面時,submitted
的值將爲false,因此您的提交頁面將始終顯示在第一位。例如
psuedo:
if (!submitted)
// Display submission form
else
// Display thank you form.
這樣做的危險。可能是刷新重新提交,使用PRG更安全 - http://en.wikipedia.org/wiki/Post/Redirect/Get。但是,爲了回答這個問題,如果你留在同一頁上,使用jquery:
$('#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;
});