2011-07-07 25 views
2

我試圖簡化我對數據模型的驗證。我想使用一個變量來表示DataAnnotation Range驗證器的屬性的上限。像這樣。使用範圍DataAnnotation驗證器的變量

namespace MvcGMDemo.Models 
{ 
    public class Vehicle 
    { 
     private static const int year; 
     //public Vehicle() 
     //{ 
     // year = DateTime.Now.Year; 
     //} 

     public int VehicleId { get; set; } 

     [Required] 
     public string Vin { get; set; } 
     [Required] 
     public string Make { get; set; } 
     [Required] 
     public string Model { get; set; } 

     [Required] 
     [Range(DateTime.Now.Year - 5, DateTime.Now.Year)] 
     public int Year { get; set; } 
    } 
} 

我可以把一個常量,但代碼將不得不重新編譯爲每個新的一年?任何幫助是極大的讚賞。

感謝

回答

0

你應該建立一個自定義的驗證。沿着這些線路(您適應情況)Somethign:

public class RangeLast5Years : RangeAttribute 
{ 
    public RangeLast5Years() : 
    base(typeof(int), DateTime.Now.Year - 5, DateTime.Now.Year) { } 
} 

和按如下方式使用它:

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

希望這會有所幫助,讓我知道如果沒有。謝謝。