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) });
}
}
}