← ClaudeAtlas

aspnet-validationlisted

ASP.NET Core validation with FluentValidation, Data Annotations, and model validation. Covers custom validators and validation pipeline. USE WHEN: user mentions "FluentValidation", "Data Annotations", "model validation", ".NET validation", "input validation", "validator", "validation pipeline" DO NOT USE FOR: Spring Validation - use `spring-validation`, Zod/Yup - use frontend validation skills
claude-dev-suite/claude-dev-suite · ★ 33 · AI & Automation · score 80
Install: claude install-skill claude-dev-suite/claude-dev-suite
# ASP.NET Validation - Quick Reference > **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `aspnet-core` for validation documentation. ## Data Annotations ```csharp public class CreateUserRequest { [Required(ErrorMessage = "Name is required")] [StringLength(100, MinimumLength = 2)] public string Name { get; set; } = default!; [Required] [EmailAddress] [StringLength(255)] public string Email { get; set; } = default!; [Required] [Range(0, 150)] public int Age { get; set; } [Url] public string? Website { get; set; } } ``` ## FluentValidation Setup ```csharp // Install: dotnet add package FluentValidation.AspNetCore builder.Services.AddValidatorsFromAssemblyContaining<Program>(); ``` ## FluentValidation Patterns ```csharp public class CreateUserValidator : AbstractValidator<CreateUserRequest> { private readonly IUserRepository _repository; public CreateUserValidator(IUserRepository repository) { _repository = repository; RuleFor(x => x.Name) .NotEmpty().WithMessage("Name is required") .Length(2, 100); RuleFor(x => x.Email) .NotEmpty() .EmailAddress() .MaximumLength(255) .MustAsync(BeUniqueEmail).WithMessage("Email already exists"); RuleFor(x => x.Age) .InclusiveBetween(0, 150); RuleFor(x => x.Password) .NotEmpty() .MinimumLength(12)