我有这个控制器动作:
[HttpGet]
public ActionResult CreateForm(Models.ReminderModel model)
{
if (model.FkUserId == null && model.FkRoleId == null) {
model.FkUserId = UserSession.Current.UserId;
model.ReminderDate = DateTime.UtcNow;
}
return View(model);
}
如果没有指定 URL 参数,该操作会正常运行,但是当我指定一些数据时,一切都会设置BUT ReminderDate
。例如,请求是用
model[0][name]:FkUserId
model[0][value]:2
....
model[2][name]:ReminderDate
model[2][value]:2013-03-09T10:33:04.934Z
...
注意:参数是序列化视图 jQuery,直到现在都可以正常工作。这是我们第一次尝试将DateTime
回传给控制器动作。
在动作控制器中,model.FKUserId
将正确设置,但ReminderDate
将设置为"0001-01-01T00:00:00.000Z"
.
我错过了什么?
**更新**
事实证明,C# 不适用于 ISO 格式的日期时间字符串。它更喜欢UTC。类似的东西2013-03-05T16:23:00.000Z
需要作为u20130305212358000
(EST)发送。绑定也足够了,但我认为这是最好的解决方案。