jquery - MVC 3 Razor - Ajax.BeginForm OnSuccess

标签 jquery asp.net-mvc ajax asp.net-mvc-3

我是 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/

相关文章:

asp.net-mvc - 调用具有参数的 lambda 表达式的方法时,我可以使用命名参数吗?

jquery - 在当前弹出窗口中显示错误消息(从数据库获取记录)

javascript - Fullcalendar events.php 不返回 JSON 对象

javascript - OctoberCMS Ajax 表单按取消后仍提交

javascript - jquery 复选框列表错误

javascript - jquery/JavaScript 输入验证

jquery - 修改表单属性

asp.net-mvc - Asp.Net MVC 2 - 遍历模型绑定(bind)器中的表单值

jquery - MVC3 Razor View 无法处理 jQuery CDN 后备脚本

asp.net-mvc - AspNet Core 生成和更改电子邮件地址