剛剛開始使用.NET和MVC(1)。我遇到了一個問題,其中在我的添加操作中,出於某種原因輸入的日期以1/1/0001結束,而不是輸入的內容,從而導致日期溢出。ASP.NET MVC發佈日期字段爲1/1/0001
在我的模型中,此字段(「已添加」)屬於datetime類型,不允許爲空值。
在我的控制,我有:
public ActionResult Add()
{
Instance instance = new Instance()
{
Added = DateTime.Now,
Active = true
};
return View(instance);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(Instance instance)
{
if (ModelState.IsValid)
{
try
{
System.Diagnostics.Trace.Write("test");
instanceRepository.Add(instance);
instanceRepository.Save();
return RedirectToAction("Details", new { id = instance.InstanceID });
}
catch
{
ModelState.AddRuleViolations(instance.GetRuleViolations());
}
}
return View(instance);
}
在我看來,我有:
<div class="editor-label">
<%= Html.LabelFor(model => model.Added) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Added,String.Format("{0:g}",Model.Added))%>
<%= Html.ValidationMessageFor(model => model.Added) %>
當我第一次去實例/添加默認值是否設置正確,但只要我提交日期輪到1/1/0001(從我的理解,這表明它是空或無法識別的格式)
當我在Request.Form上調試和監視手錶時,我看到日期進入編碼即Request.Form {Added = 4%2f9%2f2010 + 8%3a24%3a39 + AM} - 這是一個問題嗎?
我知道它可能沒有足夠的信息來弄清楚爲什麼這是失敗的,但如果有人可以提供一些很好的調試技巧,以確定如何確定提交的日期正在變得越來越快,我真的很感激它。
Html.TextBoxFor不能在MVC 1,你已經寫了 – Gregoire 2010-04-09 17:06:04
唉 - 我必須使用MVC 2 - 曾都安裝,我想我是使用1,但這只是爲了表明我對此有多新... – engil 2010-04-09 17:20:16
你是對的 - System.Web.MVC的屬性顯示2.0版 - 感謝Gregoire – engil 2010-04-09 17:27:27