Browse Source

fix: 修复字典校验bug

喵你个旺呀 1 year ago
parent
commit
0fb0febdce
1 changed files with 5 additions and 5 deletions
  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;
         var dictDataList = sysDictDataServiceProvider.GetDataList(DictTypeCode).Result;
 
 
         // 使用HashSet来提高查找效率
         // 使用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}】!");
             return new ValidationResult($"提示:{ErrorMessage}|字典【{DictTypeCode}】不包含【{valueAsString}】!");
-        else
-            return ValidationResult.Success;
+        return ValidationResult.Success;
     }
     }
 
 
     /// <summary>
     /// <summary>