2016-10-13 6 views
0

BirthDateプロパティの前にモデルにこのコードがある場合、ユーザーに古い日付を入力させる方法を教えてください。クライアント側の検証:カレンダーの古い日付のみを許可する

[DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")] 
public System.DateTime BirthDate { get; set; } 

これはJavaScriptを使用せずに達成できますか?はいの場合、どうですか?

+0

古い日付とはどういう意味ですか? – Botonomous

+0

あなたはこれを使用することができますhttp://stackoverflow.com/questions/17321948/is-there-a-rangeattribute-for-datetime – Emil

+0

あなたは財産の誕生日を持ち、ユーザーが日付を入力したことを意味しますか?つまり、11/12/1995です。誕生日を編集したい場合は、11/12/1995、つまり10/12/1994未満の日付を入力できますか? – dijam

答えて

0

RangeAttributeを拡張して、DateTimeモデルのフィールドを修飾する必要があります。

あなたは、たとえば新しい検証属性を作成することがあります。BirthDateAttribute

public class BirthDateAttribute : RangeAttribute { 

    public BirthDateAttribute() 
        : base(
          typeof(DateTime), 
          DateTime.Now.AddYears(-120).ToShortDateString(), 
          DateTime.Now.AddDays(-1)ToShortDateString() 
        ) { } 
} 

をそして、あなたはあなたのDateTimeプロパティを飾るためにそれを適用することができます

[BirthDateAttribute] 
[DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")] 
public System.DateTime BirthDate { get; set; } 
+0

MVCを使用している場合は、 EFと? –

+0

どこでも、モデルフォルダにValidationExtensionというサブフォルダを書き、モデルの同じ名前空間を使用してクラスファイルBirthDateAttribute.csを追加することをお勧めします。次に、新しい属性でモデルを飾ります –

関連する問題