2

ASP.NET MVC 2 Model Validation について読んでいて、クライアント側とサーバー側のオブジェクトに同じルールが自動的に適用されるという事実に惚れ込んでいます。ただし、私が見たすべての例では、カスタム モデル オブジェクトが使用されています。私が取り組んでいる設計では、それぞれが異なる検証を持つことができるプロパティ バッグ (辞書のようなキーと値のペアのリスト) を使用します。

例えば

  • 請求書番号: 英数字、正確に 10 文字
  • ユーザー名: 50 文字未満。
  • 請求金額: お金。

ASP.NET MVC 2 モデル検証は、カスタム検証エンジンの有無にかかわらず、これらのルールを検証できますか?

4

1 に答える 1

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. }  

したがって、キーのリストを使用するなどのカスタムのものについては、MVC 2 に含まれるデフォルトの検証ルールを使用してこれを行うことはできません。独自の検証ルールを作成する必要があります。http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspxでカスタム モデルの検証を参照してください。

その助けを願っています。

于 2011-01-14T22:11:40.877 に答える