私はこのコントローラーアクションを持っています:
[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コントローラー アクションに back を渡そうとするのはこれが初めてです。
アクション コントローラでは、model.FKUserIdは正しく設定されますが、ReminderDateに設定され"0001-01-01T00:00:00.000Z"ます。
私は何が欠けていますか?
**更新**
結局のところ、C# は ISO 形式の日時文字列では機能しません。UTC のものを優先します。のようなものを(EST)2013-03-05T16:23:00.000Zとして送信する必要があります。u20130305212358000バインディングでも十分でしたが、これが最善の解決策だと思います。