2017-08-31 15 views
0

私のフォームを送信すると、私のviewmodelにはないいくつかのプロパティ 'パスワード'が表示されるというエラーが表示されます。Viewmodelプロパティが見つかりませんでした

System.ArgumentException:ProjectName.ViewModels.User.UserSecurityViewModel.Passwordプロパティが見つかりませんでした。

ここでは

<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>
ここ

はそれがある場合は、おそらくここにNEWPASSWORDを置くためのもの、私のviewmodel

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; } 
} 
+0

あなたは真剣にそのようなHTMLを生成していないか?クライアント側の検証のために 'data-val- *'属性を生成するには 'HtmlHelper'メソッド(' Html.PasswordFor(m => m.OldPassword、new {@class = "..."}) 'を使います。 2ウェイモデルバインディング –

答えて

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

である私のHTMLフォームが何でありますかあなたはコンパリスですngに

[DataType(DataType.Password)] 
    [System.ComponentModel.DataAnnotations.Compare("NewPassword", ErrorMessage = "The confirm password does not match, type again!")] 
    public string ConfirmPassword { get; set; } 
関連する問題