Entity framework 我在ASP.net Core上有一个多选列表,validaton没有工作

Entity framework 我在ASP.net Core上有一个多选列表,validaton没有工作,entity-framework,validation,asp.net-core,multi-select,tag-helpers,Entity Framework,Validation,Asp.net Core,Multi Select,Tag Helpers,我有一个选择字段 <select asp-for="UserCitizenships" asp-items="Model.CitizenshipsList" class="select2 required"> 并返回一个Int public List<int> UserCitizenships 公共列表用户公民身份 我在后端手动处理的。来自数据批注的验证无效。我需要在表单提交时至少填充一个属性。有什么想法吗 [Required(ErrorMessage = H

我有一个选择字段

<select asp-for="UserCitizenships" asp-items="Model.CitizenshipsList" class="select2 required">
并返回一个Int

 public List<int> UserCitizenships
公共列表用户公民身份
我在后端手动处理的。来自数据批注的验证无效。我需要在表单提交时至少填充一个属性。有什么想法吗

  [Required(ErrorMessage = Helpers.ErrorMessages.Required)]
    public List<int> UserCitizenships
    {
        get
        {
           ....
[必需(ErrorMessage=Helpers.ErrorMessages.Required)]
公共列表用户公民身份
{
收到
{
....

我原以为下面的方法会奏效

[Required, MinLength(1, ErrorMessage = "At least one item required")]
public List<int> UserCitizenships { get; set; }
[必需,最小长度(1,ErrorMessage=“至少需要一项”)]
公共列表用户公民身份{get;set;}
或者,您可以创建自定义数据注释或使用类级验证

public class YourClass : IValidatableObject
{
    [Required]
    List<int> UserCitizenships

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (UserCitizenships.Count < 1)
        {
            yield return new ValidationResult(
                $"At least one UserCitizenship should be specified.",
                new[] { nameof(UserCitizenships) });
        }
    }   
}
public类YourClass:IValidatableObject
{
[必需]
列出用户公民身份
公共IEnumerable验证(ValidationContext ValidationContext)
{
if(UserCitizenships.Count<1)
{
返回新的ValidationResult(
$“应至少指定一个用户公民身份。”,
新[]{nameof(UserCitizenships)};
}
}   
}
Hi,请按照以下答案操作
public class YourClass : IValidatableObject
{
    [Required]
    List<int> UserCitizenships

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (UserCitizenships.Count < 1)
        {
            yield return new ValidationResult(
                $"At least one UserCitizenship should be specified.",
                new[] { nameof(UserCitizenships) });
        }
    }   
}