【发布时间】:2017-11-26 19:55:04
【问题描述】:
所以我的模型中有这个属性:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy hh:mm}")]
[DataType(DataType.DateTime)]
public DateTime EventDate { set; get; }
我正在为日期时间选择器使用 vuejs 组件,因此提交表单时,EventDate 值如下所示:“21-11-2017 20:47”。
但是在服务器端,在控制器操作中,我的模型始终无效:值 '21-11-2017 20:47' 对于 EventDate 无效。
知道这里有什么问题吗?我一直在尝试不同的变体,比如使用 DateType.Date 或其他格式字符串,但结果是一样的
[更新] 这里的答案表明这是this question here的副本
虽然另一个问题不一样,但答案的最后一部分暗示了我的情况可能有什么问题。它基本上说带有 DataFormatString 的 DisplaFormat 被模型绑定器忽略,我应该:
- 创建自定义模型绑定器,让 mvc 理解我的自定义格式 事件日期
- 或使用 mvc 默认理解的标准日期格式
我想目前还没有属性可以指示 mvc 在模型绑定期间如何解析日期字符串,这正是我所希望的......
【问题讨论】:
-
您需要将服务器中的文化更改为与该日期格式匹配的文化(或创建自定义 ModelBinder 来绑定您的日期)
标签: c# asp.net-mvc asp.net-mvc-5