TextBoxFor类型日期中的日期格式为dd / MM / yyyy

时间:2017-01-13 09:56:34

标签: html date datetime asp.net-mvc-5

我正在开发一个项目,需要引入日期来创建许多对象。

当我在Chrome上测试它时,没有问题。问题是当我在Firefox或Internet Explorer上运行它时。

例如,在Chrome上我使用此行(它工作正常并显示一个日期选择器):

@Html.TextBoxFor(model => model.DateReception, new { style = "font-family: 'AvenirLTStd-Light'; font-size: 15px; font-weight: bold; font-style: normal; color: black;", id = "DateReception", type = "date", min = "2016-01-01", required = "true", @class = "col-sm-10" })

对于其他浏览器,日期选择器不会显示,所以我使用这一行:

@Html.TextBoxFor(model => model.DateReception, "{0:dd/MM/yyyy}", new { style = "font-family: 'AvenirLTStd-Light'; font-size: 15px; font-weight: bold; font-style: normal; color: black;", id = "DateReceptionOther", type = "date", required = "true", @class = "numbersOnly col-sm-10" })

问题在于,当验证模型并将其传递给控制器​​时,这不起作用......浏览器希望我将日期设置为“MM / dd / yyy”格式,但我需要“dd / MM / yyyy”格式。

为此,我在之前的html行添加了{0:dd/MM/yyyy},我的模型看起来像:

[Display(Name = "Date de réception :")]
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? DateReception { get; set; }

我的网页上有错误的图片(2016年12月25日2016年12月12日期间无效)

Example of the error

3 个答案:

答案 0 :(得分:1)

<强>模型

 [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]

答案 1 :(得分:1)

这就是我为自己解决这个问题的方法。

这在模型中:

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

答案 2 :(得分:0)

您找到了下一个

的web.config
<system.web>
    <globalization culture='auto' uiCulture='auto'/>
</system.web>

en-US:M / d / yyyy(例如mm / dd / yyyy)

en-GB:dd / MM / yyyy(例如dd / mm / yyyy)