私の現在の Web プロジェクトには管理インターフェイスがあり、ユーザーの詳細を編集できます (あまり革新的ではありませんが、認めます...)。ビューは、検証属性を使用して、厳密に型指定されたユーザー モデルを使用します。
public class UserPrototype
{
[Required]
[StringLength(50, MinimumLength = 4)]
public string Username { get; set; }
[Required]
[StringLength(50, MinimumLength = 1)]
public string FirstName { get; set; }
[Required]
[StringLength(50, MinimumLength = 1]
public string LastName { get; set; }
[Required]
[StringLength(250, MinimumLength = 6]
public string Password { get; set; }
/*
And so on
*/
}
ユーザーが更新されたら、実際に変更されたフィールドのみをデータベースで更新したいと思います。主な理由はパスワード フィールドです。パスワードはもちろんハッシュとして保存されるため、ユーザーが編集のために取得された場合、そのフィールドに表示する意味はありません。ただし、モデル バインダーの検証には有効なパスワードが必要です。
それで、私はまだ同じクラスを使用できますが、どうにかして、変更されたものとして送信されたフィールドのみを検証できますか (これは JavaScript を使用して実行できます)。属性UserPrototype
を削除するためだけにクラスを複製することは避けたいと思います。Required