В настоящее время я использую DataAnnotations для проверки моего приложения MVC 2. Однако я столкнулся с небольшой проблемой.
В настоящее время у меня есть объект типа User, который имеет ряд свойств. Все это необходимо.
public class User
{
[Required(ErrorMessage = "Username is required")]
public string Username { get; set; }
[Required(ErrorMessage = "Password is required")]
public string Password { get; set; }
[Required(ErrorMessage = "Email is required")]
public string Email { get; set; }
[Required(ErrorMessage = "First name is required")]
public string Firstname { get; set; }
[Required(ErrorMessage = "Last name is required")]
public string Lastname { get; set; }
}
При регистрации все они отображаются с помощью привязки моделей, и все работает отлично. Однако на странице «изменить мои данные» можно обновить только имя, фамилию и адрес электронной почты. Всякий раз, когда представление отправляется обратно и применяется привязка модели, я получаю предупреждение. Имя пользователя / пароль является обязательным полем. Хотя на данный момент это не требуется. Я придумал два способа обойти это, ни один из которых, как мне кажется, не подходит (но может ошибаться).
1: Создайте собственную модель просмотра. Это будет работать нормально, но к этой модели представления нужно будет применить аннотации к данным, что означает дублирование проверки модели и объекта пользователя.
2: Включите все поля в визуализированный вид и отправьте их обратно. Это имеет риски для безопасности, кажется действительно беспорядочным и плохо масштабируется для сложных моделей просмотра.
Может ли кто-нибудь порекомендовать лучший способ для этой ситуации?