在MVC中处理DateFormat

时间:2017-01-11 14:17:39

标签: asp.net-mvc

我遇到显示日期格式的问题。

假设:我无法控制用户的日期格式。因此,我们无法在代码中修改或硬编码格式,否则如果我们在代码中添加的日期格式与用户的日期格式(或文化设置)不匹配,我认为它将无效。

为了帮助用户,我喜欢在UI中添加日期格式,以便用户清楚日期格式。对于instane,显示 出生日期(DD / MM / YYYY)而非出生日期。 因此,当实际出生日期是2010年1月10日(应该已输入10/01/2010)时,用户将不会输入01/10/2010。同样,当我们列出UI是否只是说没有日期格式的01/10/2010时,用户不清楚它是1月10日还是10月1日。所以,我们喜欢显示日期格式。它在编辑时是一样的。我们希望尽可能显示日期格式。

我对所有三个视图使用相同的视图模型(创建,列表,编辑)。

我将以下内容用于视图模型

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

并根据定义的格式(无论用户的文化背景如何)正确列出。但是在编辑时,如果定义的日期格式与用户的文化设置不匹配,则不会显示任何日期(不显示出生日期)。

我的目标是显示日期格式(任何日期格式),以避免在列出或输入值时出现混淆。

最好处理它(考虑到无法控制用户的文化环境)

1 个答案:

答案 0 :(得分:0)

您可以自己组织

模型

 [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public Nullable<System.DateTime> RegistrationDate { get; set; }

查看

  @Html.TextBoxFor(m => m.ResgistrationDate, "{0:dd/MM/yyyy}")