保存DateTime值从AJAX发布到MVC操作

时间:2013-07-27 06:43:07

标签: ajax asp.net-mvc asp.net-mvc-3 jquery

我将DateTime值作为String通过AJAX POST发布到MVC Action以保存此值。

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

  

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值

我的AJAX POST是,

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

和MVC Action as,

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

1 个答案:

答案 0 :(得分:2)

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