隐藏联系表格并显示确认消息

时间:2011-06-30 20:24:32

标签: c# asp.net asp.net-mvc-3

我有一个MVC页面,其中包含大量内容和“联系我们”表单。提交后,我只想隐藏表格并显示确认信息。

最好的方法是什么?我发现所有的教程都使用了一个单独的“谢谢”控制器和视图,但这似乎是违反直觉的,因为我当然要重复我的页面内容。

提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用部分视图Ajax.BeginForm代替Html.BeginForm。这可能是您在提到另一个控制器和视图时所阅读的内容。部分视图可以完美地在各种包含视图中重复使用。

答案 1 :(得分:0)

您可以在提交页面时设置变量,然后在页面回发时检查该变量。用户首次进入该页面时,submitted的值将为false,因此您的提交页面将始终首先显示。 e.g。

psuedo:

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

答案 2 :(得分: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; 
} );

$('#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; } );