浏览代码

fix: 修复字典校验bug

喵你个旺呀 1 年之前
父节点
当前提交
0fb0febdce
共有 1 个文件被更改,包括 5 次插入5 次删除
  1. 5 5
      Admin.NET/Admin.NET.Core/Attribute/DictAttribute.cs

+ 5 - 5
Admin.NET/Admin.NET.Core/Attribute/DictAttribute.cs

@@ -44,12 +44,12 @@ public class DictAttribute : ValidationAttribute, ITransient
         var dictDataList = sysDictDataServiceProvider.GetDataList(DictTypeCode).Result;
 
         // 使用HashSet来提高查找效率
-        var dictCodes = new HashSet<string>(dictDataList.Select(u => u.Name));
-
-        if (!dictCodes.Contains(valueAsString))
+        var valueList = (value?.GetType().IsEnum ?? DictTypeCode.EndsWith("Enum")) ? dictDataList.Select(u => u.Name) : dictDataList.Select(u => u.Code);
+        var dictHash = new HashSet<string>(valueList);
+        
+        if (!dictHash.Contains(valueAsString))
             return new ValidationResult($"提示:{ErrorMessage}|字典【{DictTypeCode}】不包含【{valueAsString}】!");
-        else
-            return ValidationResult.Success;
+        return ValidationResult.Success;
     }
 
     /// <summary>