2010-10-19 66 views
1

我有一個視圖模型這部分看起來像這樣...自定義數據驗證註釋 - ASP.NET MVC2 C#

 [Required] 
     public int Year { get; set; } 

     [Required] 
     [Range(1, 5000000)] 
     public int ModelID { get; set; } 

     [Required] 
     public int ZipCode{ get; set;} 

我想補充一點,檢查數據庫,以確保Zip是一款自定義驗證屬性有效。喜歡的東西...

 [Required] 
     [IsValidZipcode] 
     public int ZipCode{ get; set;} 

我一直沒能夠在網絡上找到的教程 - 我不認爲我知道該怎麼尋找,因爲這似乎將是共同的。

我應該怎麼辦?

回答

4

只要創建一個從ValidationAttribute類繼承,ovveriding和isValid方法的類:

public class IsValidZipCode: ValidationAttribute 
{ 
    public override bool IsValid(object value) 
    { 
     return db.ValidateSomething(value); 
    } 
} 

然後你去好:

[IsValidZipCode(ErrorMessage = "Not a valid zip code!")] 
public int ZipCode { get; set; } 
+0

非常感謝! – Jason 2010-10-19 03:57:37

3

您擴展ValidationAttribute,如this article所示。 ValidationAttribute有一個方法IsValid(),您可以重寫該方法以指示模型的有效性。

+0

+1到你沒有得到一票,即使你擊敗了我30秒。 :) – RPM1984 2010-10-19 03:58:15

+0

呵呵,謝謝。你的回答比較好 - 人們不喜歡讀:D – Alex 2010-10-19 04:04:48

+0

我沒有注意到你是第一個。但是,是的..複製+粘貼比較容易。 +1 – Jason 2010-10-19 13:28:33