Я пытаюсь добавить эту строку ModelState.AddModelError(string key, string errorMessage);
в IsValid
Функция ValidationAttribute
класс, но сбой.Как получить доступ к ModelState.AddModelError() из функции IsValid класса ValidationAttribute
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
public class AtleastOneAttribute : ValidationAttribute, IClientValidatable
{
// For Server side
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
var oHobby=value as IEnumerable;
foreach (var _object in oHobby)
{
Hobby _oHobby = (Hobby)_object;
if (_oHobby.IsSelected)
{
return ValidationResult.Success;
}
}
}
ModelState.AddModelError("Hobbies", "Err message....");
return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
}
скажите мне, как получить доступ к ModelState.AddModelError
из IsValid
функции класса ValidationAttribute?
благодаря
что не удается? любые ошибки? – Haris
ModelState.AddModelError() недоступен в функции isValid. так что делать в коде для доступа к нему? – Mou
Вы не получаете доступ к 'ModelState', и вы не добавляете' ModelStateError' в 'ValidationAttribute'. Кажется, вы смущены тем, что делает этот атрибут. Когда вы возвращаете 'ValidationResult'other, чем' Success', 'DefaultModelBinder' добавляет' ModelStateError' во время процесса привязки (и 'ModelState.IsValid' становится' false' –