#asp.net-mvc-2 #properties #asp.net-mvc-2-validation
#asp.net-mvc-2 #свойства #asp.net-mvc-2-validation
Вопрос:
Я читал о ASP.NET Проверка модели MVC 2 и я влюблен в тот факт, что она автоматически применяет одни и те же правила к вашим объектам на стороне клиента и сервера. Однако во всех примерах, которые я видел, использовались объекты пользовательской модели. В проекте, над которым я работаю, используются пакеты свойств (список пар ключ-> значение, например, словарь), каждый из которых может иметь разные проверки.
Например
- Номер накладной: буквенно-цифровой, ровно 10 символов
- Имя пользователя: менее 50 символов.
- Сумма счета: деньги.
Может ли ASP.NET Проверка модели MVC 2 проверяет эти правила с пользовательским механизмом проверки или без него?
Ответ №1:
Может ли ASP.NET Проверка модели MVC 2 проверяет эти правила с пользовательским механизмом проверки или без него?
Извините за мой последний ответ, он был немного расплывчатым. Для проверки любой длины или количества символов регулярные выражения являются ключевыми. Однако ваша ситуация немного отличается.
Вот что можно сделать с помощью проверки модели mvc 2 :
1. using System;
2. using System.ComponentModel.DataAnnotations;
3.
4. namespace FunWithMvc2RC2
5. {
6. public class Test
7. {
8. // StringLenght
9. [StringLength(5, ErrorMessage = "Maximum 25 Characters")]
10. public string StringLength { get; set; }
11.
12. // Required
13. [Required(ErrorMessage = "Required Field")]
14. public string Required { get; set; }
15.
16. // Required and StringLenght
17. [Required(ErrorMessage = "Required Field")]
18. [StringLength(5, ErrorMessage = "Maximum 25 Characters")]
19. public string Combos { get; set; }
20.
21. // Range Attribute
22. [Range(1, 31, ErrorMessage = "Minimum 1; Maximum 31")]
23. public int Range { get; set; }
24.
25. // RegularExpression Attribute
26. [RegularExpression(@"^(([A-Za-z0-9] _ )|([A-Za-z0-9] - )|([A-Za-z0-9] . )|([A-Za-z0-9] ))*[A-Za-z0-9] @((w - )|(w .))*w{1,63}.[a-zA-Z]{2,6}$", ErrorMessage = "Invalid Email Address")]
27. public string Regex { get; set; }
28.
29. // Custom Regular Expression EmailAttribute
30. [Email(ErrorMessage = "Email Validation")]
31. public string Email { get; set; }
32. }
33. }
Итак, я бы сказал, что для пользовательских элементов, таких как использование списка ключей и всего с этими встроенными validatioin, это невозможно с использованием правил проверки по умолчанию, включенных в MVC 2. Вам нужно будет создать свои собственные правила проверки. Смотрите пользовательскую проверку модели на http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx.
Надеюсь, это поможет.
Комментарии:
1. Я не уверен, как это отвечает на вопрос. Можете ли вы подробнее рассказать об этом?