将json数据时间发送到asp.net动作进行模型绑定的正确方法是什么

时间:2013-11-19 13:23:12

标签: c# asp.net asp.net-mvc json datetime

将json datetime发送到asp.net mvc动作的正确方法是什么,以便Model可以绑定到Json数据时间?

我正在使用ajax将表单提交给特定的控制器操作,我发送了大量数据,包括MyDate(即字符串,它包含dd-mm-yyyy格式的数据,但它没有使用任何特定的格式像UTC这样的dateformat,客户端的这个日期是由字符串连接构成的,结果是以下格式的字符串):

MyDate":"28-11-2013"

Controller Action public JsonResult Save(MyModel m)接收数据并将json数据转换为模型m数据,但是日期字段存在问题。模型中的日期字段定义如下:

    [Display(Name = "My date")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{dd-MM-yyyy}")] 
    public Nullable<DateTime> MyDate { get; set; }

如果json发送05-11-2013,那么DateTime的“month”和“date”部分是混合的(05应该是date,11应该是month,但在模型m中反之亦然)。如果我发送28-11-2012,则DateTime设置为null(因为它被视为不正确的日期)。

这样做的正确方法是什么?

编辑:我认为问题与文化有关。

1 个答案:

答案 0 :(得分:2)

您应始终使用yyyy-MM-dd格式。它由标准(ISO-8601)定义,不会被误解。

Obligitory XKCD

KXCD ISO8601