que tienen una clase de modelo así:¿Utiliza un valor de modelo ASP .NET MVC para validar otro valor de modelo?
public class SomeClass
{
public int EmployeeId {get;set;}
public int DayTotal {get;set}
}
Para esta clase de modelo Estoy creando una costumbre ValidationAttribute para la propiedad 'DayTotal'. El validador personalizado verificará el valor ingresado 'DayTotal' contra otra tabla que defina los días máximos permitidos.
¿Cómo me refiero al 'EmployeeId' seleccionado desde la vista Crear al escribir mi consulta en el validador?
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 = ???
}
}
ACTUALIZACIÓN:
Mi solución ha adoptado un enfoque diferente. Las respuestas útiles me hicieron buscar en otros lugares. Este blog de Scott Gu ayudado a proporcionar un enfoque más simple:
En mi modelo ->
public class SomeClass : IValidateObject
{
public int EmployeeId {get; set;}
public int DayTotal {get; set;}
public IEnumerable<ValidationResult> 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!");
}
¿Cómo se pasa en la validationContext al llamar Validar (..)? – RayLoveless