Использование значения модели ASP .NET MVC чтобы проверить другое значение модели?

У меня есть такой класс модели:

public class SomeClass
{
    public int EmployeeId {get;set;}
    public int DayTotal {get;set}
}

Для этого класса модели я создаю настраиваемый атрибут ValidationAttribute для свойства 'DayTotal'. Пользовательский валидатор проверит введенное значение DayTotal в сравнении с другой таблицей, определяющей максимально допустимые дни.

Как мне сослаться на выбранный «EmployeeId» в представлении «Создать» при написании моего запроса в валидаторе?

public class DayTotalAttribute : ValidationAttribute
{
    ProjectDBContext db = new ProjectDBContext();

    public override bool IsValid(object value)
    {
        if (value == null)
        {
            return false;
        }

        var products = from p in db.EmployeeDayMax
                       where p.EmployeeId = ???
    }
}

ОБНОВЛЕНИЕ:

Мое решение использует другой подход. Полезные ответы заставили меня искать в других местах. Этот блог Скотта Гу помог предоставить более простой подход:

В моей модели ->

   public class SomeClass : IValidateObject
   {
         public int EmployeeId {get; set;}
         public int DayTotal {get; set;}

         public IEnumerable Validate(ValidationContext validationContext)
         {
            ProjectDBContext db = new ProjectDBContext();
            //check maxes...can refer directly to EmployeeId in LINQ queries
            if(failed)
            {
               yield return new ValidationResult("Days have been maxed!");
            }

9
задан Johannes Kommer 1 July 2014 в 12:31
поделиться