0

我需要製作一個帶有密碼重置模式的表格,並且我有一個div,其中包含用於重置密碼視圖的HTML部分。在部分內部,它有一個始終沒有被調用的beginform。此外,控制器中的管理方法也永遠不會被調用。任何想法爲什麼?BeginForm沒有從HTML部分調用

難道是因爲我有一個HTML部分以外的窗體?

_ChangePasswordPartial.cshtml

@using Microsoft.AspNet.Identity 
@model Spectrum.Models.ManageUserViewModel 

@*<p>You're logged in as <strong>@User.Identity.GetUserName()</strong>.</p>*@ 

@using (Html.BeginForm("Manage", "User", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 
{ 
    @Html.AntiForgeryToken() 
    <h4>Change Password Form</h4> 
    <hr /> 
    @Html.ValidationSummary() 
    <div class="form-group"> 
     @Html.LabelFor(m => m.OldPassword, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.PasswordFor(m => m.OldPassword, new { @class = "form-control" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.LabelFor(m => m.NewPassword, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.PasswordFor(m => m.NewPassword, new { @class = "form-control" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      <input type="submit" value="Change password" class="btn btn-primary" /> 
     </div> 
    </div> 
} 

的Index.html

<div class="modal fade" id="modalResetPassword" tabindex="-1" role="dialog"> 
    <div class="modal-dialog" style=" max-height:50%; margin-top: 50px; margin-bottom:50px;"> 
     <div class="modal-content" style="max-height:50%"> 
      <form name="ResetPassword" role="form" data-ng-submit="formUser.$valid && vm.saveActiveUser()"> 
       <div class="modal-header btn-info"> 
        <button type="button" class="close" data-close-modal data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
        <h4 class="modal-title whitetext">Manage User {{vm.activeUser.UserName}}</h4> 

        <div class="modal-body" style="padding-left: 7px; padding-top: 0px; height: 550px;"> 
         @Html.Partial("~/Areas/Administration/Views/Shared/_ChangePasswordPartial.cshtml") 
        </div> 
       </div> 
      </form> 
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

回答

1

你有嵌套形式!一個在你的index.cshtml中,一個在你的局部視圖中。 Nested forms are not valid

此外,我看你有沒有爲你的外在形式,一些JavaScript /角方法提交

取出outerform,一切都將正常工作(假設你沒有任何javascript代碼被攔截提交事件,並防止默認表單提交行爲。

<div class="modal fade" id="modalResetPassword" tabindex="-1" role="dialog"> 
    <div class="modal-dialog" style=" max-height:50%; margin-top: 50px; margin-bottom:50px;"> 
     <div class="modal-content" style="max-height:50%">   
       <div class="modal-header btn-info"> 
        <button type="button" class="close" data-close-modal data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
        <h4 class="modal-title whitetext">Manage User {{vm.activeUser.UserName}}</h4> 

        <div class="modal-body" style="padding-left: 7px; padding-top: 0px; height: 550px;"> 
         @Html.Partial("~/Areas/Administration/Views/Shared/_ChangePasswordPartial.cshtml") 
        </div> 
       </div>    
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

另外,還要確保你的部分觀點的Html.BeginForm方法調用使用正確的操作方法名。

+0

這就是我的想法。感謝您的幫助! – user4648142