我正在尝试创建一个自定义验证属性以应用它。我使用的是教程:http://ezzylearning.com/tutorial/creating-custom-validation-attribute-in-asp-net-mvc(未实现客户端验证。客户端部分之前的所有内容)。而且,永远不会调用IsValid方法。所有基本的[必需]属性都可以正常工作,但是自定义仅被初始化,然后被忽略。
SQL
该模型正在使用该属性。
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public sealed class RequiredIfNotAttribute : ValidationAttribute
{
private String PropertyName { get; set; }
private Object InvalidValue { get; set; }
static RequiredIfNotAttribute()
{
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(RequiredIfNotAttribute), typeof(RequiredAttributeAdapter));
}
public RequiredIfNotAttribute(String propertyName, Object invalidValue)
{
PropertyName = propertyName;
InvalidValue = invalidValue;
}
protected override ValidationResult IsValid(object value, ValidationContext context)
{
ValidationResult result1 = IsValid(value, context);
result1.ErrorMessage = "TEST";
return result1;
}
public override bool IsValid(object value)
{
return false;
}
}
UI就像例子
[Display(Name = "Xxxxx")]
[RequiredIfNot("B", "")]
public string A { get; set; }
我将不胜感激。