在我的应用程序中,我有一个带有文档列表的索引页面。我想在同一“索引”页面上添加一个具有AJAX表单的新文档。我正在使用ViewModel将NewDocument对象传递到索引页面。
AJAX表单(为了便于阅读,我省略了一些部分):
@using (Ajax.BeginForm("Index_AddDocument", new AjaxOptions { UpdateTargetId = "MainList" }))
<div class="editor-field">
@Html.EditorFor(model => model.NewDocument.Date)
@Html.ValidationMessageFor(model => model.NewDocument.Date)
</div>
这是将新文档保存到数据库并更新文档的部分视图列表的方法:
public ActionResult Index_AddDocument(HomeIndexViewModel viewModel)
{
db.Documents.Add(viewModel.NewDocument);
db.SaveChanges();
return PartialView("ListOfDocs", db.Documents);
}
这不起作用,我在
db.SaveChanges()
处遇到异常。它说:InnerException {“转换为日期时间时发生溢出。”} System.Exception {System.Data.SqlServerCe.SqlCeException}
编辑:
我的文档域模型具有以下Date属性:
[DataType(DataType.Date)]
public DateTime Date { get; set; }
在AJAX表单中,我只键入一个随机日期(例如5/2/2005),然后单击Submit(提交),然后获取上述异常。
最佳答案
viewModel.NewDocument.Date
调用之前db.SaveChanges()
的值是什么?
C#可以处理0000年1月1日至9999年12月31日之间的日期。我知道SQL Server无法处理整个范围(例如,我相信SQL Server 2008无法处理1/1/1753之前的日期)
我怀疑SQL Server CE在日期范围上也有限制,并且拒绝使用默认的1/1/0000 DateTime值。
关于c# - MVC3 AJAX表单-DateTime溢出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11649896/