昨日からこの問題があります。私の User モデルには、「ConfirmPassword 」という[NotMapped]があります。データベースには保存しませんが、新しいユーザーのデータ入力を常に検証するために作成フォームで使用しています。
以来、それは大丈夫です。問題は私の [HttpPost] Edit アクションにあります。タイプなしで一部のユーザーのデータを編集し、パスワードを確認できるはずです。パスワードを変更したい場合は、古いパスワードを確認し、新しいパスワードを通知する方法として、Password と ConfirmPassword の両方を使用します。しかし、そうでない場合は、空白のままにします。
ModelState.IsValid() 条件を渡すことができるように、以下のコードを既に使用しましたが、機能しました。
ModelState["Password"].Errors.Clear();
ModelState["ConfirmPassword"].Errors.Clear();
しかし、db.SaveChanges() の直前に、User ユーザー ビュー モデルが考慮されるため、両方のプロパティが空であり、次のようになりました。
Property: ConfirmPassword Error: The field ConfirmPassword is invalid.
問題は、オブジェクトを更新するときに必要なモデルの検証をスキップするにはどうすればよいかということです。
ValidationAttributeおよび DataAnnotationsModelValidatorを拡張するクラスを使用したカスタム ModelValidations については既に読みましたが、正しく行っていません。
何か案が?UserId プロパティが null かどうかを確認するカスタム モデル検証を作成するにはどうすればよいですか。作成または編集アクションを実行しているかどうかを確認するには、これは良い方法です。
ありがとう、パウロ