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

我的编辑控制器(帖子),这是我的问题所在:

 [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 视图模型?

这现在将在控制器中,但如果它应该驻留在其他地方,所有的耳朵。

谢谢你。

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 回答