2013-02-25 102 views
1

我對automapper沒有任何反應,但希望首先了解手動方法。MVC將視圖模型映射到域模型(不包含自動映射器)以進行編輯操作

我將要更新的表是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

我的編輯器(後)這是我的問題是:

[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視圖模型?

這將在控制器現在,但如果它應該駐留在別的地方,所有的耳朵。

謝謝。

回答

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); 
    }