当使用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"
答案 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;
}