ASP.NET MVC局部视图不会调用我的Action

时间:2010-03-08 19:00:55

标签: asp.net-mvc

我刚开始在ASP.NET MVC上构建一个小型简单网站,在一个页面中我使用的是Partial视图,Partial View代表一个简单的Form,应该在按钮点击时提交,如果我点击第一次它是成功提交并返回我的部分视图与我的验证消息(如果内容无效)但如果我想再试一次,则不再调用Action。有什么想法吗?

查看:

    <form action="<%= Url.Action("ChangePassword", "Account") %>" method="post" id="jform">
    <div>
        <fieldset>
            <legend>Account Information</legend>
            <p>
                <label for="currentPassword">Current password:</label>
                <%= Html.Password("currentPassword") %>
                <%= Html.ValidationMessage("currentPassword") %>
            </p>
            <p>
                <label for="newPassword">New password:</label>
                <%= Html.Password("newPassword") %>
                <%= Html.ValidationMessage("newPassword") %>
            </p>
            <p>
                <label for="confirmPassword">Confirm new password:</label>
                <%= Html.Password("confirmPassword") %>
                <%= Html.ValidationMessage("confirmPassword") %>
            </p>
            <p>
                <input type="submit" value="Change Password" />
            </p>
        </fieldset>
    </div>
</form>
<!--<% } %>-->
</div>

<script>
    $(function() {
        $('#jform').submit(function() {
            $('#jform').ajaxSubmit({ target: '#FmChangePassword' }); return false;
        });
    });

    /*$(document).ready(function() {
    $('#jform').live('submit', function() {
            $.post($(this).attr('action'), $(this).serialize(), function(data) {
                $("#jform").replaceWith($(data));
            });
            return false;
        });
    });*/

</script>

控制器的一部分:

        if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword))
        {
            return PartialView(ViewData);                
        }

2 个答案:

答案 0 :(得分:1)

使用FireBug查看返回的HTML,检查一切是否正常。检查FireBug的控制台,查看第二次单击时发布的数据(以及发布到何处)。

答案 1 :(得分:0)

你不能在部分视图上使用Javasript。您必须在父视图中定义它