2

SQLサーバー2008を使用したmvc 4、コードファースト、ef5

ビューに関連付けられた ViewModel があります。

出発点として、VS によって作成された足場を変更しています。

フォームに問題なく入力できます。

ユーザーが保存をクリックすると、これはスキャフォールディング内のコードです。

 [HttpPost]
 public ActionResult Edit(Place place)
 {
 if (ModelState.IsValid)
    {
       db.Entry(place).State = EntityState.Modified;
       db.SaveChanges();
       return RedirectToAction("Index");
    }
 return View(place);

場所はモデルです。ビューモデル (場所を含む) をこれに戻す必要があります。

EF を使用してデータベースにビューモデルを永続化するにはどうすればよいですか? 最初にモデルに分割する必要がありますか?

試してみると、次のエラーが表示されます。

Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.

デバッグすると、(モデルからの) PlaceID が、コントローラーの httpPost Edit コントローラーに戻されたモデルから欠落しているように見えます - おそらくそれがエラーの原因ですか?

これに関するオンラインのベスト プラクティスの例はありますか。何も見つかりません。

ありがとう。

4

2 に答える 2

1

これはビューにありませんでした:

@Html.HiddenFor(モデル => モデル.place.PlaceID)

これにより、モデルの ID が監視されます

于 2013-06-05T06:59:49.570 に答える