MVC 3 Razor - Ajax.BeginForm OnSuccess

use*_*043 3 ajax asp.net-mvc jquery 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>
}
Run Code Online (Sandbox Code Playgroud)

我们非常欢迎任何其他解决方案/想法.

提前致谢!

Dar*_*rov 7

不工作是一个问题描述,更适合那些不了解/关心计算机如何工作而不是软件开发人员的人.软件开发人员通常会准确描述他们遇到的问题.他们发布了他们所拥有的确切错误消息/异常堆栈跟踪.

这就是说你要求替代解决方案,这是我的:不要使用任何MS Ajax.* helpers,直接和不引人注意地使用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>
Run Code Online (Sandbox Code Playgroud)

请注意该confirmation段落是如何从表单中外部化的.

  • 谢谢你的解决方案.对帖子模糊不清表示歉意.我是一名对Stella Artois有浓厚兴趣的软件开发人员.但是,表单验证不会触发.客户端如何知道方法是否成功? (4认同)