ASP.NET-MVC 2 DataAnnotations StringLength

Могу ли я использовать MVC 2 DataAnnotations, чтобы указать минимальную длину строкового поля?

Кто-нибудь сделал это или они создали настраиваемые атрибуты, и если да, не возражаете ли вы поделиться источником?


person griegs    schedule 22.03.2010    source источник


Ответы (2)


Если вы используете asp.net 4.0, вы можете использовать атрибут StringLength, чтобы указать минимальную длину.

Eg:

[StringLength(50, MinimumLength=1)]
public string MyText { get; set; }
person Jim Geurts    schedule 22.03.2010
comment
Нет, мы пока не используем 4.0, и так, как здесь все происходит, еще долго не будет. :) - person griegs; 23.03.2010
comment
К вашему сведению ... Если вы не публикуете подписку (то есть вы не публикуете поле формы с именем MyText), проверка StringLength для этого свойства будет проигнорирована. Вот статья объясняя этот сценарий с помощью аналогичного атрибута (RequiredAttribute). - person tbehunin; 13.03.2012

Используйте атрибут регулярного выражения. Они также интерпретируются на стороне клиента.

[RegularExpression(Regexes.MinStringLength)]
public string MyText { get; set; }

Где Regexes.MinStringLength - класс статического регулярного выражения. Встроенный будет выглядеть так:

[RegularExpression(@"^.{5,10}$")] // valid five to ten characters
public string MyText { get; set; }
person Josiah Ruddell    schedule 24.09.2010
comment
Regexes.MinStringLength кажется доморощенным, возможно, вы могли бы привести пример, который работает без необходимости в других определениях? Возможно [RegularExpression (. {1})], изменив 1 на любую желаемую минимальную длину. - person Tim Abell; 23.02.2012
comment
Извините, это должно быть [RegularExpression (. {1,})] - ref msdn .microsoft.com / en-us / library / az24scfc.aspx. - person Tim Abell; 23.02.2012