【发布时间】:2014-10-09 10:09:06
【问题描述】:
我有一个 8 层的项目 我想编辑一条记录;例如: 在存储库层: 1:在 IRepository 中: IEnumerable GetArea(int id);
void Edit(CRM_Area crm);
2:在存储库中:
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;
}
在服务层: 1:在服务中:
void Delete(int ID);
IEnumerable<_CRM_AreaList> GetArea(int ID);
void Edit(_CRM_AreaEdit crmArea);
2:在服务中:
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);
}
在控制器的 web 层中:
[HttpGet] 公共 ActionResult 编辑(int ID) {
return View(_areaServices.GetArea(ID));
}
[HttpPost]
public ActionResult Edit(_CRM_AreaEdit crmAreaEdit)
{
_areaServices.Edit(crmAreaEdit);
return RedirectToAction("List");
}
但它不起作用。请帮助我 - 我该如何编辑,我的错误在哪里? 当我单击编辑时,传递到字典中的模型项的类型为“System.Linq.Enumerable+WhereSelectEnumerableIterator`2[CRM.Web.Models.CRM_Area,CRM.Web.ViewModel.Area._CRM_AreaList]”,但是这本字典需要“CRM.Web.ViewModel.Area._CRM_AreaEdit”类型的模型项。
【问题讨论】:
标签: c# asp.net-mvc edit layer asp.net-mvc-controller