私のアプリケーションには、Documentsのリストを含む Index ページがあります。同じインデックス ページに AJAX フォームを含む新しいドキュメントを追加したいと考えています。ViewModel を使用してNewDocumentオブジェクトを Index ページに渡しています。
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}
編集: My Document ドメイン モデルには、次の Date プロパティがあります。
[DataType(DataType.Date)]
public DateTime Date { get; set; }
AJAX フォームで、2005 年 5 月 2 日のようなランダムな日付を入力して [送信] をクリックすると、上記の例外が発生します。