Может ли ASP.NET Проверка модели MVC 2 обрабатывает пакеты свойств?

#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. Я не уверен, как это отвечает на вопрос. Можете ли вы подробнее рассказать об этом?