【发布时间】:2014-02-07 00:04:47
【问题描述】:
当使用 ajax 调用从视图返回数据但仅用于编辑时,我得到一个无效的 ModelState。我将日期时间值从 SQL 记录传递到视图。日期在 Kendo UI 日期时间选择器中显示得很好。如果我从日期时间选择器中进行新的选择,我不会得到异常,只有当我不进行任何更改时才会得到无效错误。这是 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"
【问题讨论】:
-
可能是 CultureInfo 设置影响它
-
@Has AlTaiar,是英文的。我在申请中使用了很多其他日期,但只有这个日期搞砸了
-
实际提交给控制器的是什么?你能在 Fiddler 中看到吗?
-
@trailmax,这是我看到的返回到控制器的内容,它也是从控制器发送到视图的内容。 RequiredByDate: "/Date(1387443600000)/"
-
@trailmax,在 Microsoft 的 Amit 的帮助下发现了问题。结果是控制器传递了正确格式的日期,但在页面中我使用的是 Kendo MVVM,并且模型正在将日期转换为我在上面发布的值。最终不得不进行 javascript 转换。我已经编辑了我的帖子以显示代码。
标签: asp.net asp.net-mvc