Массив должен содержать 1 элемент
У меня есть следующий класс:
public class CreateJob
{
[Required]
public int JobTypeId { get; set; }
public string RequestedBy { get; set; }
public JobTask[] TaskDescriptions { get; set; }
}
Я хотел бы иметь аннотацию данных выше TaskDescriptions
, чтобы массив содержал хотя бы один элемент? Очень похоже на [Required]
. Возможно ли это?
Ответы
Ответ 1
Я видел специальный атрибут проверки, используемый для этого раньше, например:
(Я дал образец со списком, но может быть адаптирован для массива или вы можете использовать список)
public class MustHaveOneElementAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
var list = value as IList;
if (list != null)
{
return list.Count > 0;
}
return false;
}
}
[MustHaveOneElementAttribute (ErrorMessage = "At least a task is required")]
public List<Person> TaskDescriptions { get; private set; }
Ответ 2
Это можно сделать с помощью стандартного атрибута проверки MinLengthAttribute, но работает только для массивов:
public class CreateJob
{
[Required]
public int JobTypeId { get; set; }
public string RequestedBy { get; set; }
[MinLength(1)]
public JobTask[] TaskDescriptions { get; set; }
}