C# 在MVC多层中编辑记录
我有一个8层的项目 我想编辑一个记录;例如: 在存储库层中: 1:在IRepository中: IEnumerable GetArea(int-id) 2:在存储库中:C# 在MVC多层中编辑记录,c#,asp.net-mvc,edit,layer,asp.net-mvc-controller,C#,Asp.net Mvc,Edit,Layer,Asp.net Mvc Controller,我有一个8层的项目 我想编辑一个记录;例如: 在存储库层中: 1:在IRepository中: IEnumerable GetArea(int-id) 2:在存储库中: public IEnumerable<CRM_Area> GetArea(int ID) { return _db.CrmAreas.Where(x=>x.ID==ID); } public void Edit(CRM_Area crmAr
public IEnumerable<CRM_Area> GetArea(int ID)
{
return _db.CrmAreas.Where(x=>x.ID==ID);
}
public void Edit(CRM_Area crmArea)
{
_db.Entry(crmArea).State=EntityState.Modified;
}
但它不起作用。请帮助我-我如何编辑以及我的错误在哪里?
单击“编辑”时,传递到字典中的模型项的类型为“System.Linq.Enumerable+Where SelectEnumerableInterator`2[CRM.Web.Models.CRM\u Area,CRM.Web.ViewModel.Area.\U CRM\u Area List]”,但此字典需要“CRM.Web.ViewModel.Area.\U CRM\u Area edit”类型的模型项。请尝试保存存储库中的更改。 请始终记住,编辑后需要保存更改
public void Edit(CRM_Area crmArea)
{
_db.Entry(crmArea).State=EntityState.Modified;
_db.SaveChanges();
}
谢谢,但我的错误不是pass:传入字典的模型项的类型为“System.Linq.Enumerable+whereselectEnumerableInterator`2[CRM.Web.Models.CRM\u Area,CRM.Web.ViewModel.Area.\u CRM\u Area List]”,但此字典需要类型为“CRM.Web.ViewModel.Area.\u CRM\u Area Edit”的模型项。
void Delete(int ID);
IEnumerable<_CRM_AreaList> GetArea(int ID);
void Edit(_CRM_AreaEdit crmArea);
public IEnumerable<_CRM_AreaList> GetArea(int ID)
{
return _areaRepository.GetArea(ID).Select(Mapper.Map<CRM_Area, _CRM_AreaList>);
}
public void Edit(_CRM_AreaEdit crmAreaEdit)
{
var editArea = Mapper.Map<_CRM_AreaEdit, CRM_Area>(crmAreaEdit);
_areaRepository.Edit(editArea);
}
return View(_areaServices.GetArea(ID));
}
[HttpPost]
public ActionResult Edit(_CRM_AreaEdit crmAreaEdit)
{
_areaServices.Edit(crmAreaEdit);
return RedirectToAction("List");
}
public void Edit(CRM_Area crmArea)
{
_db.Entry(crmArea).State=EntityState.Modified;
_db.SaveChanges();
}