我正在尝试创建自己的自定义数据注释。我创建了一个新项目,数据注释在这个干净的项目中完美运行,但它似乎不适用于我的 Repository-Pattern 项目。
我创建了一个 MustBeTrue 验证,这意味着该方法检查是否选中了给定的复选框(条款和条件)。
[Display(Name = "I accept the terms and conditions")]
[MustBeTrue(ErrorMessage = "Please accept terms and conditions before
public bool AcceptTerms { get; set; }
//non-relevant properties follow
//....method listed below
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class MustBeTrueAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return value != null && value is bool && (bool)value;
}
}
我在一个单独的项目中有这段完全相同的代码,创建了一个视图并使用了这个模型,验证工作完美。但是,当尝试在我的另一个项目中复制它时,该项目使用存储库而不是在 Web 应用程序中拥有正确的模型,我的自定义验证不会运行。
编辑:要添加的另一件非常重要的事情是,我有一个助手来显示特定于该实体的字段,例如,我MvcHtmlString
用来返回需要填写的字段字符串。
在放弃之前我必须检查任何设置吗?“默认”是否有任何东西可以连接我尚未完成的自定义注释?
注意: System.ComponentModel.DataAnnotations 在我的存储库项目中工作正常,它只是我无法工作的自定义项。
谢谢你的帮助!非常感激。