使用RegularExpressionAttribute在MVC模型验证中未触发IsValid()

时间:2019-03-14 06:59:05

标签: c# asp.net regex asp.net-mvc model

我有一个要检查字符串是否有效的模型。

我首先检查字符串是否仅包含数字,这部分有效。之后,我想再次检查一下数字的总和是否正确。

最后一部分不起作用。 IsValid()永远不会触发

型号:

    [ValidImei]
    string Imei { get; set; }

属性验证

[AttributeUsage(AttributeTargets.Property)]
public class ValidImeiAttribute : RegularExpressionAttribute
{

    public ValidImeiAttribute() : base(@"^\d+$")
    {
        ErrorMessage = ValidationMessage.InvalidImeiOnlyNumbersAllowed;
    }

    public override bool IsValid(object value)
    {

        // THIS CODE IS NEVER TRIGGERED?
        var isRegexValid = base.IsValid(value);
        if (!isRegexValid)
        {
            return false;
        }

        var imei = value as string;

        var validator = NinjectWebCommon.Kernel.Get<IImeiValidator>();

        string errorMessage;
        return validator.IsValid(imei, out errorMessage);

    }
}

全局,应用程序启动

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(ValidImeiAttribute), typeof(RegularExpressionAttributeAdapter));

0 个答案:

没有答案