Допустим, у меня есть настройка класса пользователя с проверкой, подобной этой:
[MetadataType(typeof(ssUserMetaData))]
public partial class ssUser
{
}
class ssUserMetaData
{
[Required(ErrorMessage = "Name is a required field.")]
[StringLength(100, ErrorMessage = "Name must be 100 characters or less.")]
public string Name { get; set; }
[Required(ErrorMessage = "Username is a required field.")]
[StringLength(50, ErrorMessage = "Username must be 50 characters or less.")]
public string Username { get; set; }
[Required(ErrorMessage = "Email address is a required field.")]
[Email(ErrorMessage = "Email address must be a valid format.")]
[StringLength(100, ErrorMessage = "Email address must be 100 characters or less.")]
[DisplayName("Email address")]
public string Email { get; set; }
[Required(ErrorMessage = "Password is a required field.")]
[StringLength(1000, MinimumLength = 6, ErrorMessage = "Passwords must be at least 6 characters long.")]
[DisplayName("Password")]
public string PasswordHash { get; set; }
}
Теперь у меня есть метод обновления, который позволяет пользователям обновлять только пару полей, таких как Имя и Электронная почта. Я не хочу повторно отправлять все данные для этой формы, чтобы передать привязку модели, но я хотел бы использовать настроенные здесь правила проверки для проверки конкретного значения в коллекции форм.
Что-то вроде этого воображаемого кода ...
bool result = ModelState.ValidateField("Email", formCollection["Email"]);
Есть ли способ сделать что-то подобное, чтобы я мог избежать повторения моих правил проверки? Спасибо!