2013-05-30 89 views
0

我有一个日期时间格式的问题,在asp mvc 4中。 日期显示为dd/mm/yyyy hh:mm:ss, 所有我想显示的是dd/mm/yy,因为它是DOB。DateTime?在文本框中格式化

我的模型如下...

[Display(Name = "Date of Birth")] 
[DisplayFormat(DataFormatString = "{0:d}"] 
public DateTime? DOB { get; set; } 

我的看法......

@Html.TextBoxFor(model => model.Patient.DOB, new { @class = "m-wrap span8", disabled = "disabled" }) 

我不希望用户能够编辑日期,以便EditFor不是选项,我试图将标签ApplyFormatInEditMode = true添加到属性中,同时用EditFor替换TextBoxFor,这样做的格式是正确的,允许用户编辑!

我也试过DOB.value.ToShortDateString(),没有快乐。

任何提示或帮助的赞赏......

回答

0

您正在使用short date format specifier其拉动当前线程文化(默认情况下通常是你的操作系统的文化)的日期/时间格式。

如果你需要的是你需要修复它即

[DisplayFormat(DataFormatString = "{0:dd/MM/yy}")] 

如果使用EditorFor而不是TextBoxForDisplayFormat属性只适用一个统一的格式。

+0

感谢您的答复,但似乎没有解决它,这个问题是否与“?”有关。以下日期时间... – mkell

+0

@mkell哪种模式是您在编辑或显示中的视图? '?'意味着'DateTime'可以为空,这不应该影响格式。 – James

+0

不完全确定我明白你的模式是什么意思?或在哪里检查? – mkell