c# - 如何使用类验证属性在属性上动态设置验证消息

标签 c# asp.net-mvc validation attributes data-annotations

我正在编写位于类上但检查类属性的验证属性。我希望它在它发现无效的每个属性上设置验证消息。我该怎么做?

这是我目前得到的:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public class LinkedFieldValidationAttribute : ValidationAttribute
    {
        private readonly string[] _properiesToValidate;

        public LinkedFieldValidationAttribute(params string[] properiesToValidate)
        {
            _properiesToValidate = properiesToValidate;
        }

        public override bool IsValid(object value)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);

            foreach (var propertyName in _properiesToValidate)
            {
                var propertyValue = properties.Find(propertyName, false).GetValue(value);
                //if value is invalid add message from base
            }

            //return validity
        }
    }

最佳答案

使用the other overload of IsValid可以返回 ValidationResult而不是 bool

关于c# - 如何使用类验证属性在属性上动态设置验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2666897/

相关文章:

c# - WPF 工具包图表 - Series.Clear() 后的 NullReferenceException

c# - 无法通过 CRM 2011 中的 C# 以编程方式创建组织

c# - 是否可以将 2 个独立的 MVC 应用程序部署到一个 Azure Web 应用程序中?

javascript - Morris js 动态 ykeys

ruby-on-rails - Ruby on Rails 表单中的 HTML5 'required' 验证

php - CodeIgniter form_validation 没有显示错误

ruby-on-rails-3 - 如何确定 ActiveModel::Errors 验证类型

c# - 具有持续更新数据的 MVVM

c# - 如何以不同方式呈现类的派生类型?

c# - 将分号分隔的字符串解析为通用列表<T>