2013-10-09 35 views
2

MVC 4,C#。在Razor @ Html.EditFor上格式化日期,包含文化。

在我的Razor視圖我有:

@Html.EditorFor(model => model.ActionObject.StartDate) 

這是在我的模型標註有:

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

在視圖中,它被設置像這樣,隨着日期選擇器:

date

注意它是如何使用mm/dd/yyyy。我如何根據用戶動態地改變它?用戶可以將文化設置爲任何他們想要的。

通常,我可以這樣做:

.ToString("d", culture) 

凡文化是動態設置的。但是這對@ Html.Editfor不起作用。

+2

這是本機Chrome日期選擇器嗎?如果是這樣,它是基於你的電腦的文化。 –

回答

5

This datepicker是在谷歌瀏覽器中的HTML 5 輸入類型日期的原生表示。你不能改變這種格式。顯示格式來自他的操作系統中的用戶文化/本地化配置。

如果要格式化成你想要的,刪除[DataType(DataType.Date)],渲染默認輸入字段然後用JQuery用戶界面DatePicker的或另一個來呈現更好的日期字段。