[解決済み] datetime2 データ型から datetime データ型への変換で、範囲外の値が発生しました。
質問
HomeControllerに以下のようなコードを書いています。
public ActionResult Edit(int id)
{
var ArticleToEdit = (from m in _db.ArticleSet where m.storyId == id select m).First();
return View(ArticleToEdit);
}
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Article ArticleToEdit)
{
var originalArticle = (from m in _db.ArticleSet where m.storyId == ArticleToEdit.storyId select m).First();
if (!ModelState.IsValid)
return View(originalArticle);
_db.ApplyPropertyChanges(originalArticle.EntityKey.EntitySetName, ArticleToEdit);
_db.SaveChanges();
return RedirectToAction("Index");
}
そして、これがEditメソッド用のビューです。
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="headline">Headline</label>
<%= Html.TextBox("headline") %>
</p>
<p>
<label for="story">Story <span>( HTML Allowed )</span></label>
<%= Html.TextArea("story") %>
</p>
<p>
<label for="image">Image URL</label>
<%= Html.TextBox("image") %>
</p>
<p>
<input type="submit" value="Post" />
</p>
</fieldset>
<% } %>
送信ボタンを押すと、エラーが発生します。
{"The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.\r\nThe statement has been terminated."}
何が問題なのか、何か思い当たることはありますか?編集メソッドがDBに投稿された値を編集されたものに更新しようとしているのだと思いますが、なぜかそれが気に入らないようです...。しかし、editのコントローラメソッドには日付は書かれていないので、なぜ日付が関係しているのかわかりません?
どうすればいいですか?
この問題は、あなたが
ApplyPropertyChanges
を、フォームのデータ (見出し、ストーリー、画像) のみが入力されたモデルオブジェクトと組み合わせて使用します。
ApplyPropertyChanges
は、オブジェクトのすべてのプロパティに変更を適用し、初期化されていない
DateTime
の範囲外である0001-01-01に設定されています。
DATETIME
.
を使用するのではなく
ApplyPropertyChanges
この方法では、変更されたフィールドのみが修正されます。 この方法では、変更されたフィールドのみが変更されます。別の方法として、他のフィールドが入力されるようにページに隠された入力を配置することもできますが、これは同時編集に対してあまり親切ではありません。
更新してください。
以下は、オブジェクトのいくつかのフィールドを更新するだけの未試験のサンプルです(これはLINQ to SQLを使用していると仮定しています)。
var story = _db.ArticleSet.First(a => a.storyId == ArticleToEdit.storyId);
story.headline = ArticleToEdit.headline;
story.story = ArticleToEdit.story;
story.image = ArticleToEdit.image;
story.modifiedDate = DateTime.Now;
_db.SubmitChanges();
関連
-
[解決済み] ルート値を含むURL.Action()
-
[解決済み] ASP.NET MVCでHTML-5のdata-*属性でダッシュを使用する方法
-
[解決済み】ASP.NET MVCのルートをサブドメインに基づいて作成することは可能ですか?
-
[解決済み】ASP.NET MVC 3 コントローラから200 HTTPステータスコードを返す方法
-
[解決済み】MVC4 DataType.Date EditorForがChromeで日付の値を表示しない、Internet Explorerでは問題なし。
-
[解決済み] datetime2 データ型から datetime データ型への変換で、範囲外の値が発生しました。
-
[解決済み] ASP.NET MVCにおけるロールベースアクセスコントロール(RBAC)とクレームベースアクセスコントロール(CBAC)の比較
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
-
[解決済み] ASP.NET MVCにおけるセッション変数
-
[解決済み] HTMLヘルパーでURLを生成する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] asp.net MVCの@RenderSectionとは?
-
[解決済み】ASP.NET MVCのフォームでチェックボックスを処理するにはどうすればよいですか?
-
[解決済み】ASP.NET MVC 3 コントローラから200 HTTPステータスコードを返す方法
-
[解決済み】ViewModelのベストプラクティス
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み] asp.net mvc: なぜ Html.CheckBox は追加の隠された入力を生成するのですか?
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
-
[解決済み] ASP.NET MVC: UrlHelperを使用するコントローラのユニットテスト
-
[解決済み] アクションリンクでエリア名を指定するには?
-
[解決済み] DbContextとSetInitializerを使用して、datetime2の範囲外の変換エラーを修正する方法は?