无效的日期格式导致ModelState在控制器中无效

时间:2014-02-07 00:04:48

标签: asp.net asp.net-mvc

当使用ajax调用从View返回数据时,我得到一个无效的ModelState,但仅用于编辑。我将日期时间值从SQL记录传递到视图。日期在Kendo UI DateTime选择器中显示得很好。如果我从日期时间选择器中进行新选择,我不会得到异常,只有在我不进行任何更改时才会出现无效错误。这是MVC控制器显示的内容:

The value '/Date(1387443600000)/' is not valid for RequiredByDate."

我在这里缺少什么?我第一次遇到像这样的日期时间字段的问题。

编辑:一旦控制器传入日期,就会在视图中格式化日期。这是我在页面上使用它之前必须做的事情,并最终将其发送回控制器(代码用于调试目的很冗长):

var myModel = model;
var jsonDate = myModel.Header.RequiredByDate; //  "/Date(1387443600000)/"
var value = new Date(parseInt(jsonDate.substr(6)));
var ret = value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear(); 
//ret is now in normal date format "12-13-2013"

1 个答案:

答案 0 :(得分:0)

在上面发布编辑后,我发现我认为这是一个更好的解决方案。这是一个将字符串转换为实际日期对象的函数:

function dateFromStringWithTime(str) {
    var match;
    if (!(match = str.match(/\d+/))) {
        return false;
    }
    var date = new Date();
    date.setTime(match[0] - 0);
    return date;
}