0

我通过 AJAX POST 将 DateTime 值作为字符串发布到 MVC 操作以保存此值。

但是在 MVC 操作中保存值时,我在我的 AJAX 响应中收到错误消息:

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围

我的 AJAX POST 是这样的,

String dateTime="2013-07-25 11:59:22 PM";
$.ajax({
    type:'POST',
    url:'SaveSchedule',
    data:{start:dateTime},
    success:function(data){ }
});

和 MVC 动作为,

[HttpPost]
public ActionResult SaveSchedule(DateTime start)
{
    var schedule = new Schedule { StartTime = start};
    db.Schedules.Add(schedule);
    db.SaveChanges();
    var temp = 0;
    return Json(temp);
}
4

1 回答 1

2

在使用 ajax 函数时,您应该小心,因为它们是客户端函数,因此您应该在控制器中 decalre 字符串类型参数,并在操作中使用 C# 的 tryparse 方法将它们转换为所需的数据类型。在字符串参数中获取日期后,您将使用 datetime.tryparse 方法将字符串中的日期转换为 datetime 数据类型,那么在使用 ajax 时将永远不会出现此类错误。

于 2013-07-27T06:52:37.230 回答