У меня есть приложение asp .net mvc.Для всех других моих атрибутов я использовал аннотации данных для проверки атрибутов.Но я хотел бы получить пользовательскую проверку.Я читал в Интернете, что подход к проверке пользовательских аннотаций может быть подходом.
Перейдите по этой ссылке здесь ASP.NET MVC: пользовательская проверка с помощью DataAnnotation выглядит как отличное решение.Единственная проблема, с которой я сталкиваюсь, - это как получить доступ к моему DBContext, если он не находится внутри контроллера.
То, что у меня есть до сих пор
Это код, который я обычно использовал в контроллерах для получения текущего пользователя и контекста БД.
Код контроллера
private ApplicationDbContext _dbContext => HttpContext.GetOwinContext().Get<ApplicationDbContext>();
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
ViewModel
[HasNoRedemption]
public string code {get; set;}
HasNoRedemption.cs
public class HasNoRedemption : ValidationAttribute
{
public override bool IsValid(object value)
{
//check if user has ever claimed the code, return true is good
}
}
Если я могу получить некоторую помощь в создании пользовательской проверки, такую, что я смогу проверить БД или предложение длялучший подход.