我创建了一个自定义验证,该验证将限制用户输入最多的项目列表(例如关键字)。
[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
属性中使用了此属性,但是当您具有自定义属性时可以实现吗?