【问题标题】:MVC map viewmodel to domain model (without automapper) for edit actionMVC 将视图模型映射到域模型(没有自动映射器)以进行编辑操作
【发布时间】:2013-02-25 22:14:46
【问题描述】:

我不反对automapper,但想先了解一下手动方法。

我要更新的表是 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);
    }

有人可以提供一个如何手动将视图模型映射到 area_list(模型,由实体框架创建)的示例吗?我是否正确绑定了 AreaView 视图模型?

现在它会在控制器中,但如果它应该驻留在其他地方,请全神贯注。

谢谢。

【问题讨论】:

    标签: asp.net-mvc linq entity-framework


    【解决方案1】:

    好吧,更多的试验和错误来了答案,如果它对其他人有用,将在下面发布。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      相关资源
      最近更新 更多