Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC将viewmodel映射到域模型(不带自动映射器)以进行编辑操作_Asp.net Mvc_Linq_Entity Framework - Fatal编程技术网

Asp.net mvc MVC将viewmodel映射到域模型(不带自动映射器)以进行编辑操作

Asp.net mvc MVC将viewmodel映射到域模型(不带自动映射器)以进行编辑操作,asp.net-mvc,linq,entity-framework,Asp.net Mvc,Linq,Entity Framework,我不反对automapper,但想先了解手动方法 我要更新的表是区域列表 我的viewmodel: 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; } } “编辑”视图

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

我要更新的表是区域列表

我的viewmodel:

 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; }
}
“编辑”视图有两个字段,区域id(隐藏)和区域名称

我的编辑控制器(post),我的问题是:

 [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_列表(模型,由实体框架创建)?我是否正确绑定了AreaView视图模型

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


谢谢。

好吧,更多的尝试和错误得到了答案,如果对其他人有用的话,请贴在下面

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