我有一个标准的 asp.net mvc 4 视图,其表单具有一些可编辑字段,包括 DataTime 选择。当表单回传到控制器时,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>
}
除日期时间外,模型的所有属性都很好。
关于出了什么问题或如何调试的任何想法?