1.使用验证特性
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
[RequiredCollection] public ICollection<IFormFile> Attachments { get; set; }
2.自定义验证特性
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
public class RequiredCollectionAttribute : ValidationAttribute { protected const string DefaultErrorMessageFormatString = "You must provide at least one."; public RequiredCollectionAttribute() : base(DefaultErrorMessageFormatString) { } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var collection = (ICollection) value; return collection == null || collection.Count > 0 ? ValidationResult.Success : new ValidationResult(ErrorMessageString); } }
3.提交请求验证
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
[HttpPost] public async Task<IActionResult> Method(MethodViewModel viewModel) { if (!ModelState.IsValid) return View(viewModel); ... }