在ASP.NET MVC中使用自定义验证属性

时间:2018-11-08 15:28:08

标签: asp.net-mvc asp.net-mvc-5.2 validationattribute

我正在尝试创建一个自定义验证属性以应用它。我使用的是教程: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; } 

我将不胜感激。

0 个答案:

没有答案