私の現在の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でも達成できます)。 Required
属性を削除するだけでUserPrototype
クラスを複製しないようにしたいと思います。
あと、パスワードを変更することも可能です。しかし、パスワードを知っているだけで、他のパラメータを変更するためにそれを再入力する必要はありません... – carlpett
私の答えを更新しました。編集シナリオで、必要な属性を削除します。 –