我正在开发一个项目,需要引入日期来创建许多对象。
当我在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日期间无效)
答案 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)