DataTime 選択を含む、いくつかの編集可能なフィールドを持つフォームを備えた標準の asp.net mvc 4 ビューがあります。フォームがコントローラーにポストバックされると、有効な日付がクライアントに正常に送信されるか、クライアントで選択されても、DateTime は常に DateTime 1/1/0001 の最小値として表示されます。
DefaultModelBinding がこれを台無しにしていると推測していますが、その理由や方法はわかりません。私の web.config には、グローバリゼーションのために次のものがあります。
<globalization enableClientBasedCulture="true" uiCulture="auto" culture="auto"/>
投稿を受け取るコントローラーの ActionResult は次のとおりです。
[HttpPost]
public virtual ActionResult Edit(KBUser kbuser)
{
if (this.ModelState.IsValid)
{
//save the user
m_userRepo.UpdateUser(kbuser);
return RedirectToAction(MVC.Users.Index());
}
else
{
return View(kbuser);
}
}
ビューの関連部分は次のとおりです。
@model KBMaxLive.Domain.KBUser
@using (Html.BeginForm("Edit", "User", new { idUser = Request["idUser"] }, FormMethod.Post, new { id = "form" }))
{
<fieldset>
<legend>@Engine.Resources.KBMaxLive.Account</legend>
<div class="field-column-container">
<div class="field-column">
<div class="field-container">
@Html.LabelFor(u => u.CreatedDate)
@Html.TextBoxFor(u => u.CreatedDate, new { @class = "k-textbox", @readonly = "readonly" })
@Html.ValidationMessageFor(u => u.CreatedDate)
</div>
</div>
</div>
</fieldset>
}
日時を除いて、モデルのすべてのプロパティは正常に機能します。
何がうまくいかないのか、またはこれをデバッグする方法についてのアイデアはありますか?