返回PartialView()Url.Actionlink(“Action”,“Controller”)后,Controller丢失

时间:2010-03-09 22:02:00

标签: asp.net-mvc

问题与我之前发布的问题(ASP.NET MVC partial view does not call my Action)有关。在实践中,我有一个包含表单的局部视图,在提交表单之后,Controller返回部分视图。

问题是,如果我重新加载包含部分视图的页面,函数<%= Url.Action("ChangePassword", "Account") %>将返回“帐户/ ChangePassword ”,如果我提交表单并且部分由控制器。

使用return PartialView()功能<%= Url.Action("ChangePassword", "Account") %>仅返回“ ChangePassword ”。

任何想法都是因为?

视图如下:

<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; 
        }); 
    }); 
</script> 

控制器的一部分:

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

1 个答案:

答案 0 :(得分:0)