Я создал пользовательскую проверку, которая будет ограничивать пользователя для ввода максимального списка элементов (например, ключевых слов).
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class MaxListItemsAttribute : ValidationAttribute, IClientValidatable
{
private readonly int _max;
public MaxListItemsAttribute(int max)
{
_max = max;
}
}
Сложность здесь заключается в том, что для другой страны есть разные максимальные значения, которые пользователь может вводить.Например: в Великобритании пользователю разрешено вводить 10 позиций;в АС пользователю разрешено вводить 100 позиций;и т. д.
Я думаю использовать ресурс (.resx) для динамического изменения значения max
в зависимости от культуры, установленной в приложении.Если я решу установить британскую культуру, значение max
должно быть равно 10 и аналогично другим странам.
[MaxListItems(Metadata.MaxListItems_MaxCount)]
public List<string> Keywords { get; set; }
Metadata
- это ресурс (.resx), куда я извлек определенное максимальное число дляатрибут MaxListItems
.
Я видел, как это используется в атрибуте Display
, но можно ли это реализовать, если у вас есть собственный атрибут?