前言
今天,前台页面传JSON
字符串,后台接口以JObject
接收数据。发现,在日期转换的过程中出现以下问题:
该字符串未被识别为有效的 DateTime。
产生错误原因
查看代码,发现,在实体类中日期类型是可空的。同时,前台传给后台的日期是也是空的。导致后台使用Convert.ToDateTime()
进行转换时,出现以上的问题。
实体:
public Datetime? mdate { get; set;}
后台转换:
md.mdate=Convert.ToDateTime(data["mdate"]);
解法方案
写一个方法去判断日期类型的方法。代码如下:
public DateTime? GetDate(string mdata) {
if (!string.IsNullOrEmpty(mdata))
{
return Convert.ToDateTime(mdata);
}
return null;
}
每次转换之前对日期进行判断即可;
md.mdate=GetDate(data["mdate"].ToString());