私はこのコントローラーアクションを持っています:
[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
バインディングでも十分でしたが、これが最善の解決策だと思います。