【发布时间】:2013-11-19 13:23:11
【问题描述】:
将 json datetime 发送到 asp.net mvc action 以便 Model 可以绑定到 Json datatime 的正确方法是什么?
我正在使用 ajax 将表单提交给特定的控制器操作,并且我正在发送大量数据,包括 MyDate(即字符串,它包含 dd-mm-yyyy 格式的数据,但它没有使用任何特定的格式dateformat 和 UTC 一样,客户端的这个日期是由字符串连接组成的,结果是以下格式的字符串):
MyDate":"28-11-2013"
Controller Action public JsonResult Save(MyModel m) 接收数据并将json数据转换为模型m数据,但是日期字段存在问题。模型中的 datefield 是这样定义的:
[Display(Name = "My date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{dd-MM-yyyy}")]
public Nullable<DateTime> MyDate { get; set; }
如果 json 发送 05-11-2013,那么 DateTime 的“月”和“日期”部分是混合的(05 应该是日期,11 应该是月份,但在模型 m 中反之亦然)。如果我发送28-11-2012,那么DateTime 设置为null(因为它被视为不正确的日期)。
这样做的正确方法是什么?
编辑:我认为问题与文化有关。
【问题讨论】:
-
当你说“但它没有使用任何特定的日期格式格式化”时,这是否意味着你有一些写成 mm-dd-yyyy 和一些写成 dd-mm-yyyy?
-
我的意思是它不是作为新的 Date 或类似的东西创建的。它由字符串连接创建,格式为 dd-mm-yyyy。
-
看这里:msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx 如果您发布您的反序列化/解析方法也会有所帮助。
-
我没有反序列化/解析方法,我猜它是由 Asp.net mvc 模型绑定自动完成的。我对此还不熟悉。
标签: c# asp.net asp.net-mvc json datetime