5
有人必須寫下這之前:-)任何人都有C#MVC出生日期驗證屬性?
我需要一個驗證屬性的出生日期,檢查日期是否在一個特定的範圍內 - 即用戶還沒有輸入一個尚未發生的日期或者過去是150年。
感謝您的指點!
有人必須寫下這之前:-)任何人都有C#MVC出生日期驗證屬性?
我需要一個驗證屬性的出生日期,檢查日期是否在一個特定的範圍內 - 即用戶還沒有輸入一個尚未發生的日期或者過去是150年。
感謝您的指點!
[DateOfBirth(MinAge = 0, MaxAge = 150)]
public DateTime DateOfBirth { get; set; }
// ...
public class DateOfBirthAttribute : ValidationAttribute
{
public int MinAge { get; set; }
public int MaxAge { get; set; }
public override bool IsValid(object value)
{
if (value == null)
return true;
var val = (DateTime)value;
if (val.AddYears(MinAge) > DateTime.Now)
return false;
return (val.AddYears(MaxAge) > DateTime.Now);
}
}
你可以使用內置的
Range
attribute:
[Range(typeof(DateTime),
DateTime.Now.AddYears(-150).ToString("yyyy-MM-dd"),
DateTime.Now.ToString("yyyy-MM-dd"),
ErrorMessage = "Date of birth must be sane!")]
public DateTime DateOfBirth { get; set; }
感謝您的回覆:我已經嘗試了上述代碼,並收到以下錯誤 「的屬性參數必須是常量表達式,屬性參數類型爲「 – beebul 2010-07-23 07:58:05
@beebul」的typeof表達式或數組創建表達式:當然,對不起!在這種情況下,具有常量的'Range'驗證器在這種情況下沒有多大意義,所以我想你需要一個自定義驗證器。我會編輯我的答案... – LukeH 2010-07-23 09:03:56
謝謝盧克,這是一種享受。應定期使用該屬性。乾杯! – beebul 2010-07-23 09:25:02