【问题标题】:Custom validation attribute for model Data annotations模型数据注释的自定义验证属性
【发布时间】:2014-05-22 01:45:18
【问题描述】:

是否有任何方法可以自定义数据注释,就像在模型中添加 [Uppercase],[Lowercase],[ProperCase] 注释以在上述情况下转换模型。??? 我尝试过使用modelbinder,它只设置一个数据注释我想要实现的是拥有这样的模型:

[Display(Name="Agent Code", Prompt =  "Agent Code")]
[CustomAttributes(Case="Uppecase", IsTrim=false)]
[Required(AllowEmptyStrings = false, ErrorMessage = ModelConstants.L_MSG_REQUIRED)]
[StringLength(10)]
public string agent_cd { get; set; }

任何想法或建议如何实现我想要的输出??

【问题讨论】:

    标签: asp.net-mvc data-annotations


    【解决方案1】:

    有办法,创建自己的注解,像这样:

    namespace System.ComponentModel.DataAnnotations
    {
        public class MakeMeUpperCase : ValidationAttribute
        {
            protected override ValidationResult IsValid(object value, ValidationContext validationContext)
            {
                try
                {
                    validationContext.ObjectType.GetProperty(validationContext.DisplayName)
                    .SetValue(validationContext.ObjectInstance, value.ToString().ToUpper() , null);
                }
                catch (Exception)
                {
                }
                return null;
          }
       }
    }
    

    还有你的财产:

    [MakeMeUpperCase]
    public string TurnUpper { get; set; }
    

    【讨论】:

    • 我已经解决了我的问题。我现在也可以把它转换成大写和小写,还可以修剪谢谢,,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2017-12-13
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    相关资源
    最近更新 更多