【问题标题】:IValidatableObject in separate assembliesIValidatableObject 在单独的程序集中
【发布时间】:2012-05-16 05:50:14
【问题描述】:

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

很明显,问题出在单独的程序集上,但我不知道该怎么做才能完成这项工作,有人可以帮助我吗?

这是我的代码:

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");
        }
    }
}

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 validation ivalidatableobject


    【解决方案1】:

    您需要编写 IValidatableObject 的 ViewModel,并在验证后将数据从它移动到控制器中的业务模型。

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多