Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获得财产';从自定义属性中选择显示名称_C#_Asp.net_Asp.net Mvc 2_Data Annotations - Fatal编程技术网

C# 如何获得财产';从自定义属性中选择显示名称

C# 如何获得财产';从自定义属性中选择显示名称,c#,asp.net,asp.net-mvc-2,data-annotations,C#,Asp.net,Asp.net Mvc 2,Data Annotations,我正在尝试创建一个最小长度验证属性,该属性将强制用户在文本框中输入指定的最小字符数 public sealed class MinimumLengthAttribute : ValidationAttribute { public int MinLength { get; set; } public MinimumLengthAttribute(int minLength) {

我正在尝试创建一个最小长度验证属性,该属性将强制用户在文本框中输入指定的最小字符数

    public sealed class MinimumLengthAttribute : ValidationAttribute
        {
            public int MinLength { get; set; }

            public MinimumLengthAttribute(int minLength)
            {
                MinLength = minLength;
            }

            public override bool IsValid(object value)
            {
                if (value == null)
                {
                    return true;
                }
                string valueAsString = value as string;
                return (valueAsString != null && valueAsString.Length >= MinLength);

  }
    }
在MinimumLengthAttribute的构造函数中,我想将错误消息设置如下:

ErrorMessage=“{0}的长度必须至少为{1}个字符”


如何获取属性的显示名称,以便填充{0}占位符?

如果错误消息包含多个占位符,则属性也应覆盖该方法,如下所示:

public override string FormatErrorMessage(string name) {
    return String.Format(ErrorMessageString, name, MinLength);
}
您应该调用一个构造函数重载来指定属性的默认错误消息:

public MinimumLengthAttribute()
    : base("{0} must be at least {1} characters long") {
}

{0}
占位符将自动填充
[Display(Name=”“)]
的值,如果
[Display(Name=“”)]
属性不存在,则它将采用属性的名称。

在分配属性时是否试图避免使用ErrorMessage属性?比如:MinimumLength(ErrorMessage=“电子邮件地址必须至少5个字符长”)是的,我试图避免在分配属性时设置错误消息。验证FormatErrorMessage方法仅在服务器端验证时有效,但在客户端无效。因此,最好设置ErrprMessage属性。