asp.net-mvc – ASP.NET MVC:添加将DisplayName合并到自定义ValidationAttr
发布时间:2020-10-19 14:28:25  所属栏目:asp.Net  来源:互联网 
            导读:我正在使用带有DataAnnotations的ASP.NET MVC.我创建了以下自定义ValidationAttribute,它可以正常工作. public class StringRangeAttribute : ValidationAttribute{ public int MinLength { get; set; } public int MaxLength { get
                
                
                
            | 
                         我正在使用带有DataAnnotations的ASP.NET MVC.我创建了以下自定义ValidationAttribute,它可以正常工作. public class StringRangeAttribute : ValidationAttribute
{
    public int MinLength { get; set; }
    public int MaxLength { get; set; }
    public StringRangeAttribute(int minLength,int maxLength)
    {   
        this.MinLength = (minLength < 0) ? 0 : minLength;
        this.MaxLength = (maxLength < 0) ? 0 : maxLength;
    }
    public override bool IsValid(object value)
    {            
        //null or empty is <em>not</em> invalid
        string str = (string)value;
        if (string.IsNullOrEmpty(str))
            return true;
        return (str.Length >= this.MinLength && str.Length <= this.MaxLength);
    }
} 
 但是,出现的错误消息是标准的“字段*无效”.我想将其更改为:“[DisplayName]必须介于[minlength]和[maxlength]之间”,但我无法弄清楚如何从此类中获取DisplayName甚至字段的名称. 谁知道? 解决方法稍微修改过的StringLengthAttribute:public class StringRangeAttribute : ValidationAttribute
{
    // Methods
    public StringRangeAttribute(int minimumLength,int maximumLength)
        : base(() => "The {0} must be between {1} and {2} chars long.")
    {
        MaximumLength = maximumLength;
        MinimumLength = minimumLength;
    }
    public override string FormatErrorMessage(string name)
    {
        return string.Format(CultureInfo.CurrentCulture,ErrorMessageString,new object[] { name,MinimumLength,MaximumLength });
    }
    public override bool IsValid(object value)
    {
        if (value != null)
        {
            return (((string)value).Length <= MaximumLength) && (((string)value).Length >= MinimumLength);
        }
        return true;
    }
    public int MaximumLength { get; set; }
    public int MinimumLength { get; set; }
}                        (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net-mvc – ASP.NET MVC的Content / Themes / base Dir
 - NHibernate中对同一个对象的Lazyload要设置一致
 - asp.net – CalendarExtender定位问题
 - 运行命令(CMD)大全
 - Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附
 - Asp.net MVC实现生成Excel并下载功能
 - 使用System.Net.Mail中的SMTP发送邮件(带附件)
 - asp.net-mvc – 使用Entity FrameWork保存更改/更新数据集中
 - asp.net – Stripe Webhook事件续订订阅
 - asp.net-mvc – 如何在MVC视图中构造if语句
 
