1

私はオートマッパーに反対することは何もありませんが、最初に手動の方法を理解したいと思います。

更新される私のテーブルはarea_listです

私のビューモデル:

 public class AreaView
{
    public int area_id { get; set; }
    public string area_name { get; set; }
    public string facility_name { get; set; }
    public int facility_id { get; set; }
}

編集ビューには、area_id(非表示)とarea_nameの2つのフィールドがあります

私の編集コントローラー(投稿)、これは私の質問がどこにあるかです:

 [HttpPost]
    public ActionResult Edit(AreaView e_area)
    {
        if (ModelState.IsValid)
        {
            areaDB.Entry(e_area).State = EntityState.Modified;
            areaDB.SaveChanges();
            return RedirectToAction("List", new { id = e_area.facility_id });
        }
        return View(e_area);
    }

誰かがviewmodelをarea_list(エンティティフレームワークによって作成されたモデル)に手動でマップする方法の例を提供できますか?AreaViewビューモデルを正しくバインドしていますか?

これは今のところコントローラーにありますが、別の場所にある場合は、すべての耳にあります。

ありがとうございました。

4

1 に答える 1

0

さて、他の人に役立つ場合は、以下に投稿された、より多くの試行錯誤が答えに至りました.

[HttpPost]
    public ActionResult Edit(AreaView e_area)
    {
        if (ModelState.IsValid)
        {
            // Map the model 

            var area = areaDB.area_list.Where(x => x.area_id == e_area.area_id).FirstOrDefault();
            area.area_name = e_area.area_name;

            areaDB.Entry(area).State = EntityState.Modified;
                areaDB.SaveChanges();

            return RedirectToAction("List", new { id = e_area.facility_id });
        }
        return View(e_area);
    }
于 2013-02-28T14:05:08.290 に答える