我有一个MVC页面,其中包含大量内容和“联系我们”表单。提交后,我只想隐藏表格并显示确认信息。
最好的方法是什么?我发现所有的教程都使用了一个单独的“谢谢”控制器和视图,但这似乎是违反直觉的,因为我当然要重复我的页面内容。
提前谢谢。
答案 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;
} );