gpt4 book ai didi

c# - 自定义验证属性未调用 ASP.NET MVC

转载 作者:太空狗 更新时间:2023-10-30 01:10:58 26 4
gpt4 key购买 nike

大家好,我已经创建了自定义验证属性并将其分配给类级别验证。不幸的是,它没有被调用。我尝试了所有它认为可以解决问题的方法。但是,我花了几个小时,但我找不到该属性未被验证机制调用。

为了说明你我放了下面的代码。

属性

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]    public sealed class BooleanDependencyAttribute : ValidationAttribute    {        private const string _defaultErrorMessage = "กรุณากรอก{0}";        private readonly object _typeId = new object();        public string DependencyPropertyName { get; private set; }        public string DependentPropertyName { get; private set; }        public BooleanDependencyAttribute(string dependencyPropertyName, string dependentPropertyName)            : base(_defaultErrorMessage)        {            DependencyPropertyName = dependencyPropertyName;            DependentPropertyName = dependentPropertyName;        }        public override object TypeId        {            get            {                return _typeId;            }        }        public override string FormatErrorMessage(string name)        {            return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString,name);        }        public override bool IsValid(object value)        {            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);            bool dependencyValue = (bool) properties.Find(DependencyPropertyName, true /* ignoreCase */).GetValue(value);            object dependentValue = properties.Find(DependentPropertyName, true /* ignoreCase */).GetValue(value);            if (dependencyValue)            {                return true;            }            else            {                if (dependentValue == null)                {                    return false;                }                else                {                    return true;                }            }        }    }

View 模型

  [BooleanDependency("ReleaseNow","ReleaseDate",ErrorMessage="Please enter release date")]    public class ContentCreate    {        public string Title { get; set; }        public DateTime? ReleaseDate { get; set; }        public string Details { get; set; }        public string Abstract { get; set; }        public string Tags { get; set; }        public bool ReleaseNow { get; set; }    } 

请你帮我解决这个问题。

最佳答案

我找到了解决方案。事实上,类级别的验证是在所有属性级别的验证都有效之后调用的。因此,我需要完成其他必需的属性,然后 BooleanDependencyAttribute 将被调用并获得有效值。

感谢观看,编辑标题和标签。

关于c# - 自定义验证属性未调用 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3586324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com