Ejemplo n.º 1
0
        }                      //构造方法

        //实现抽象类ValidationAttribute中IsValid方法,该方法用于验证属性值是否有效,Value为验证的值,validationContext为要验证的类
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value != null)                //判断如果value值不为空
            {
                int KeyID = 0;                //定义其他条件查询的条件值变量
                if (Key != null && Key != "") //如果不为空,则表示需要制定其他条件查询,Key为属性的名称,例如“ID”
                {
                    //通过反射获取出条件属性的值
                    KeyID = Convert.ToInt32(validationContext.ObjectInstance.GetType().GetProperty(Key).GetValue(validationContext.ObjectInstance));
                }
                //通过传入表枚举值调用简单工厂模式类的InitDataUnique方法,并返回已实现了ICheckUnique接口的各实现类
                ICheckUnique iDataUnique = PublicInitiali.InitDataUnique(edu);
                //调用实现类中CheckUnique方法,参数分别为要验证的属性值、验证类型和其他条件值。方法实现了对数据库表的数据校验工作
                if (iDataUnique.CheckUnique((string)value, MyType, KeyID)) //如果验证成功,则返回true
                {
                    return(ValidationResult.Success);                      //返回验证成功
                }
            }
            return(new ValidationResult(null));//返回验证失败,value值为null
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 通过调用构造资源路径类向视图动态数据类型Urls加载资源实体数据
 /// </summary>
 public static void SetUrls(dynamic ViewBag, UrlHelper Url)
 {
     ViewBag.Urls = PublicInitiali.InitGettingUrl(Url);
 }