Asp.net mvc 即使字段正确,也不是日期

Asp.net mvc 即使字段正确,也不是日期,asp.net-mvc,datetime,date-format,Asp.net Mvc,Datetime,Date Format,我在模型中有日期时间: [DataType(DataType.DateTime)] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = @"{0:dd/MM/yyyy HH:mm}")] public DateTime Start { get; set; } [DataType(DataType.DateTime)] [DisplayFormat(ApplyForm

我在模型中有日期时间:

    [DataType(DataType.DateTime)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = @"{0:dd/MM/yyyy HH:mm}")]       
    public DateTime Start { get; set; }

    [DataType(DataType.DateTime)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = @"{0:dd/MM/yyyy HH:mm}")]    
    public DateTime End { get; set; }

如果我写
2016年5月25日10:00
说明字段开始/结束不是日期,但如果我写
2016年5月12日10:00
则是正确的。第一个数字与日期(12)、第二个数字与月份(05)、最后一个数字与年份(2016)、10到小时、00到分钟相匹配,那么为什么不能让我写超过12天呢?

下面代码中的内容只是显示格式

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = @"{0:dd/MM/yyyy HH:mm}")]    
默认日期时间格式为MM/dd/yyyy HH:MM,因此实际上日期时间为2016年5月12日10:00,12为月,05为日,2016年

如果您试图设置具有其他格式的日期,C#将应用此验证


显示格式的目的是在dd/mm/yyyy中呈现所述日期。

DateTime dt=DateTime.ParseExact(“24/01/2013”,“dd/mm/yyyy”,CultureInfo.InvariantCulture)
如果您还需要该信息,请添加时间格式。

不要在课堂上直接这样做,而是在视图中尝试

@Html.EditorFor(model => model.Start, "{0:dd/MM/yyyy HH:mm}")

@Html.EditorFor(model => model.End, "{0:dd/MM/yyyy HH:mm}")
然后在您的模型中,只需执行以下操作:

[DataType(DataType.DateTime)]      
public DateTime Start { get; set; }

[DataType(DataType.DateTime)]
public DateTime End { get; set; }
让我知道这是否有帮助

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

@Html.EditorFor(x => x.Start)

这应该可以工作。

那么我如何才能将其更改为我希望的工作状态?正如我所写的,第一个数字是天,而不是月,但它不允许我将天设置为大于12(我通过在post controller中预览我的DateTime对象检查了这一点),您需要这样做,我必须把它放在哪里?我提醒您,如果第一个数字大于12,它将不会进入POST函数。我假设您正在尝试发布此信息,您可以在cshtml中进行此解析。在您看来,如何显示文本框
@Html.EditorFor(model=>model.Start)
?您使用的是jQuery日期选择器还是任何插件?或者您是在手动写入日期?我正在手动写入。如果这是客户端验证错误,则您需要重新配置
$。验证器
(请参阅)。如果是服务器端验证错误,则需要将区域性设置为接受
dd/MM/yyyyy
格式,或创建自定义
ModelBinder
@Cezar,然后重新配置
$.validator
,以按照我前面评论中的链接接受
dd/MM/yyyy
格式的日期。不起作用,当然,第一个数字是一天,但这个愚蠢的验证器不会让它去post函数,如果天大于12…你能在这里发布你的cshtml代码吗。所以我们可以看一看,并提出问题所在。不起作用,当然第一个数字是正确的一天,但是这个愚蠢的验证器不会让它进入post功能,如果天大于12…@Cezar那么当你点击提交时,或者当焦点离开文本框时,会发生错误吗?我点击创建,它会检查文本框值是否正确,不重新加载页面。@Cezar所以它会转到
[HttpPost]
操作?然后它在什么方面失败了?异常发生在哪里?只有当第一个数字小于13时,才会转到HttpPost。