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