2013-02-25 120 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); 
    }