Может ли ASP.NET MVC 2 Model Validation обрабатывать пакеты свойств? - PullRequest
2 голосов
/ 09 декабря 2010

Я читал о проверке модели ASP.NET MVC 2, и мне нравится тот факт, что он автоматически применяет одни и те же правила к объектам на стороне клиента и на стороне сервера.Однако во всех примерах, которые я видел, использовались объекты пользовательских моделей.В проекте, над которым я работаю, используются пакеты свойств (список пар ключ -> значение, например словарь), каждая из которых может иметь разные проверки.

Например

  • Номер счета: буквенно-цифровой, ровно 10 символов
  • Имя пользователя: менее 50 символов.
  • Сумма счета: Деньги.

Может ли ASP.NET MVC 2 Model Validation проверить эти правила с или без пользовательского механизма проверки?

1 Ответ

1 голос
/ 15 января 2011

Может ли ASP.NET MVC 2 Model Validation проверить эти правила с или без пользовательского механизма проверки?

Извините за мой последний ответ, он был немного расплывчатым.Для любой длины или количества символов проверки регулярные выражения являются ключевыми.Однако ваша ситуация немного отличается.

Вот что можно сделать с помощью проверки модели 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. }  

Так что я бы сказал, что для пользовательских вещей, таких как список ключей и всес этими встроенными валидаторами это невозможно при использовании правил валидации по умолчанию, включенных в MVC 2. Вам нужно будет создать свои собственные правила валидации.См. Пользовательскую проверку модели на http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx.

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...