2011-06-30 33 views
0

我有一個MVC頁面,其中包含大量內容和「聯繫我們」表單。提交後,我只想隱藏表單並顯示確認消息。隱藏聯繫表單並顯示確認消息

解決此問題的最佳方法是什麼?我發現所有教程都使用單獨的「謝謝」控制器和視圖,但這似乎與直覺相反,因爲我當然必須重複我的頁面內容。

預先感謝您。

回答

1

您可以使用局部視圖Ajax.BeginForm,而不是Html.BeginForm。這可能是你在讀到另一個控制器和視圖時讀到的內容。部分視圖可以在各種包含視圖中完美重用。

0

您可以在頁面提交時設置變量,然後在頁面回傳時檢查該變量。用戶首次進入該頁面時,submitted的值將爲false,因此您的提交頁面將始終顯示在第一位。例如

psuedo: 

if (!submitted) 
    // Display submission form 
else 
    // Display thank you form. 
0

這樣做的危險。可能是刷新重新提交,使用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; 
});