找不到 Viewmodel 属性

use*_*050 1 c# asp.net-mvc asp.net-mvc-viewmodel

提交表单时,我收到一条错误消息,指出无法找到我的视图模型中没有的某些属性“密码”。

System.ArgumentException:找不到属性 ProjectName.ViewModels.User.UserSecurityViewModel.Password。

这是我的 html 表单

<form id="securityForm" class="form-horizontal" method="post" action="/User/SaveSecurityInfo">
  <div class="panel panel-default">
    <div class="panel-heading">Change Your Password</div>
    <div class="panel-body">
      <div class="col-sm-7">
        <div class="form-group">
          <label for="OldPassword" class="col-sm-4 control-label">Old Password</label>
          <div class="col-sm-8">
            <input type="password" name="OldPassword" class="form-control input-lg" id="OldPassword">
          </div>
        </div>
        <div class="form-group">
          <label for="NewPassword" class="col-sm-4 control-label">New Password</label>
          <div class="col-sm-8">
            <input type="password" name="NewPassword" class="form-control input-lg" id="NewPassword">
          </div>
        </div>
        <div class="form-group">
          <label for="ConfirmPassword" class="col-sm-4 control-label">Confirm Password</label>
          <div class="col-sm-8">
            <input type="password" name="ConfirmPassword" class="form-control input-lg" id="ConfirmPassword">
          </div>
        </div>
      </div>
      <div class="col-sm-5">
        some test text @Html.ValidationSummary("", new { @class = "text-danger" })
      </div>
    </div>
    <div class="panel-footer">
      <div class="col-sm-offset-9">
        <button id="updatePassword" type="submit" @*form="securityForm" *@ class="btn btn-primary btn-lg">Update Password</button>
      </div>
    </div>
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

这是我的视图模型

 public class UserSecurityViewModel
{
    [Required]
    [StringLength(12, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    public string OldPassword { get; set; }

    [Required]
    [StringLength(12, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    public string NewPassword { get; set; }

    [DataType(DataType.Password)]
    [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "The confirm password does not match, type again!")]
    public string ConfirmPassword { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*D77 5

[DataType(DataType.Password)]
    [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "The confirm password does not match, type again!")]
    public string ConfirmPassword { get; set; }
Run Code Online (Sandbox Code Playgroud)

如果这是您要比较的内容,您可能打算将 NewPassword 放在这里

[DataType(DataType.Password)]
    [System.ComponentModel.DataAnnotations.Compare("NewPassword", ErrorMessage = "The confirm password does not match, type again!")]
    public string ConfirmPassword { get; set; }
Run Code Online (Sandbox Code Playgroud)