我是 MVC 新手,我正在尝试在提交表单后更新我的页面;但它不起作用。我只是想隐藏表单,并显示 div OnSuccess 的内容。
我的代码是:
<script type="text/javascript">
$(document).ready(function () {
$('#confirmation').hide();
});
function MessageConfirmation() {
$('#confirmation').show('slow');
$('#contactForm').hide('slow');
}
</script>
@using (Ajax.BeginForm("Index", new AjaxOptions { OnSuccess = "MessageConfirmation" }))
{
<fieldset id="contactForm">
<legend>Message</legend>
<p>
@Html.Label("Email", "Email"): @Html.TextBox("Email")
</p>
<p>
@Html.Label("Subject", "Subject"): @Html.TextBox("Subject")
</p>
<p>
@Html.Label("Message", "Message"): @Html.TextArea("Message")
</p>
<p>
<input type="submit" value="Send" />
</p>
</fieldset>
<p id="confirmation" onclick="MessageConfirmation()">
Thanks!!!
</p>
}
欢迎任何替代解决方案/想法。
提前致谢!
最佳答案
不工作是一种问题描述,更适合不了解/关心计算机如何工作的人,而不是软件开发人员。软件开发人员通常准确地描述他们遇到的问题。他们发布了他们所拥有的确切错误消息/异常堆栈跟踪。
话虽如此,您正在寻求替代解决方案,这是我的:不要使用任何 MS Ajax.* 帮助程序
,直接且不引人注目地使用 jquery,就像这样
<script type="text/javascript">
$(function () {
$('#confirmation').hide();
$('form').submit(function() {
$('#confirmation').show('slow');
$(this).hide('slow');
return false;
});
});
</script>
@using (Html.BeginForm())
{
<fieldset id="contactForm">
<legend>Message</legend>
<p>
@Html.Label("Email", "Email"):
@Html.TextBox("Email")
</p>
<p>
@Html.Label("Subject", "Subject"):
@Html.TextBox("Subject")
</p>
<p>
@Html.Label("Message", "Message"):
@Html.TextArea("Message")
</p>
<p>
<input type="submit" value="Send" />
</p>
</fieldset>
}
<p id="confirmation">
Thanks!!!
</p>
请注意确认
段落是如何从表单中外部化的。
关于jquery - MVC 3 Razor - Ajax.BeginForm OnSuccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927479/