3

嗨我试图在ASPNET MVC 4项目上实现IValidableObject接口。我的模型在不同的程序集中,当框架执行我的validate方法时,它显示没有validationContext并向我显示此错误: validationContext无法通过嵌套访问外部类型'AS.Core.Model.Horario.Validate'的非静态成员键入'AS.Core.Model.Horario'独立程序集中的IValidatableObject

很明显,问题是关于单独的程序集,但我不知道该怎么做才能做到这一点,任何人都可以帮助我?

这是我的代码:

public class Horario : IValidatableObject 
{ 
    [Range(0, 6, ErrorMessage = "Dia inválido")] 
    public byte Dia { get; set; } 

    [DataType(DataType.Time, ErrorMessage = "Horário de início inválido")] 
    public TimeSpan? HorarioInicio { get; set; } 

    [DataType(DataType.Time, ErrorMessage = "Horário fim inválido")] 
    public TimeSpan? HorarioFim { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (HorarioInicio != null && HorarioFim == null || HorarioFim != null && HorarioInicio == null) 
     { 
      yield return new ValidationResult("Horário inválido"); 
     } 
    } 
} 

回答

0

你需要编写视图模型,这将是IValidatableObject和确认后,从它的控制器将数据移动到你的商业模式。