Вы можете использовать Fluent Validator в .NET Core для таких проверок
Шаг 1: - Зарегистрируйте его при запуске
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddFluentValidation(fvc =>
fvc.RegisterValidatorsFromAssemblyContaining<Startup>());
}
Шаг 2: -
Определите правила проверки как это
public class RegistrationViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
public class RegistrationViewModelValidator : AbstractValidator<RegistrationViewModel>
{
readonly IUserRepository _userRepo;
public RegistrationViewModelValidator(IUserRepository userReo)
{
RuleFor(reg => reg.FirstName).NotEmpty();
RuleFor(reg => reg.LastName).NotEmpty();
RuleFor(reg => reg.Email).NotEmpty();
RuleFor(reg => reg.FirstName).Must(DoesnotExist);
}
bool DoesnotExist(string userName)
{
return _userRepo.FindByUserName(userName) != null;
}
}
Шаг 3: -
В контроллерах
[HttpPost]
public IActionResult FormValidation(RegistrationViewModel model)
{
if (this.ModelState.IsValid) {
ViewBag.SuccessMessage = "Great!";
}
return View();
}
См. Эту ссылку для полной документации