基于资源文件(.resx)的自定义DataAnnotations验证

时间:2018-10-12 09:37:19

标签: c# asp.net validation data-annotations

我创建了一个自定义验证,该验证将限制用户输入最多的项目列表(例如关键字)。

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class MaxListItemsAttribute : ValidationAttribute, IClientValidatable
{
    private readonly int _max;

    public MaxListItemsAttribute(int max)
    {
        _max = max;
    }
}

这里的棘手部分是针对不同的国家/地区,允许用户输入的最大项目有所不同。例如:在英国,用户可以输入10个项目;在AU中,允许用户输入100个项目;等等。

我正在考虑使用一个资源(.resx)根据我在应用程序中设置的区域性来动态更改max值。如果我选择设置英国文化,则max的值应为10,其他国家也应类似。

[MaxListItems(Metadata.MaxListItems_MaxCount)]
public List<string> Keywords { get; set; }

Metadata是资源(.resx),在其中我提取了MaxListItems属性的已定义最大计数。

我已经在Display属性中使用了此属性,但是当您具有自定义属性时可以实现吗?

0 个答案:

没有答案