0

我有一個SmallDateTime字段在我的Sql Server 2008數據庫中存儲用戶生日。ASP.NET MVC 3綁定和驗證日期爲HTML文本框控件

在我的「編輯個人資料」網頁上,我有一個標準的textbox,我想將「生日」日期綁定到(不包括時間,因爲這不是必需的)。目前我對文本框有約束力,但它正在渲染完整的日期和時間。此外,當用戶更新他們的個人資料時,我希望能夠驗證生日文本框,確保指定的值符合dd/mm/yyyy,並且通過頁面上現有的驗證摘要突出顯示任何偏差。

我如何去:

A)配置在我的ViewModel生日財產dd/mm/yyyy格式(不包括時間顯示)。

b)當用戶提交表單時驗證生日(基於dd/mm/yyyy格式)?

回答

1
[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)] 
public DateTime DateOfBirth { get; set; } 

這應該給你在球場上的自動格式化(無需你做手工)以及驗證。

0

我通常使用與DateTime對象配對的字符串屬性,像

public string MyDateStr 
{ 
    get 
    { 
     return MyDateDate == null ? "" : MyDateDate.ToShortDateString(); 
    } 
    set 
    { 
     // Usually a tryParse for the string value 
    } 
} 

我知道這是不規範的方式,但到現在爲止,是我找到的最快的。

HTH

M.

編輯:用於驗證的東西看到這一點:other question on SO

0

一),可以使用.ToShortDateString來渲染日期時間沒有時間。格式仍然取決於全球化默認值。

B)來驗證,您可以用數據註釋做你的模型是這樣的:

[DataType(DataType.DateTime, ErrorMessage = "Please enter a valid date in the format dd/mm/yyyy")] 
public DateTime Birthday { get; set; }