asp.net-mvc-4 - 将自定义参数传递给ValidationAttribute

标签 asp.net-mvc-4

我建立了一个自定义的ValidationAttribute,以便可以验证系统中的唯一电子邮件地址。但是,我想以某种方式传递自定义参数,以向验证添加更多逻辑。

public class UniqueEmailAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        //I need the original value here so I won't validate if it hasn't changed.
        return value != null && Validation.IsEmailUnique(value.ToString());
    }
}

最佳答案

像这样?

public class StringLengthValidatorNullable : ValidationAttribute
{
    public int MinStringLength { get; set; }
    public int MaxStringLength { get; set; }

    public override bool IsValid(object value)
    {
        if (value == null)
        {
            return false;
        }
        var length = value.ToString().Length;

        if (length < MinStringLength || length >= MaxStringLength)
        {
            return false;
        }
        return true;
    }
}


用:

[StringLengthValidatorNullable(MinStringLength = 1, MaxStringLength = 16)]
public string Name {get; set;}

关于asp.net-mvc-4 - 将自定义参数传递给ValidationAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14836248/

相关文章:

c# - 在 ASP.NET MVC View 中显示来自数据库的图像

c# - 获取完整的 url,如 http ://google. com 作为操作输入

asp.net-mvc-4 - 从nuget升级到webgrease 1.5.1.25624后,出现System.IO.FileLoadException

c# - 检查 Razor 页面中的登录用户角色

javascript - iframe 在设置 src 属性时调用 Action 方法两次

ios - 使用 iOS 6 social.Framework (twitter oauth) 登录到 ASP.NET MVC 4 站点

asp.net-mvc-4 - ServiceStack 禁用 HttpRequestValidation

来自 C# 的 javascript 文字 - 避免警告

asp.net - 来自 Controller 的数据在 View 中不可见 - ASP MVC

asp.net - 如何强制 ASP.NET 应用程序使用 HTTPS?