8 층 프로젝트가 있습니다. 레코드를 편집하고 싶습니다. 예 : 저장소 계층에서 : 1 : IRepository에서 : IEnumerable GetArea (int id);MVC 멀티 레이어에서 레코드 편집
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 Iservices에서 :
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);
}
및 controlle의 웹 레이어에서 R :
는[HttpGet] 공공 ActionResult 편집 (INT ID는) {
return View(_areaServices.GetArea(ID));
}
[HttpPost]
public ActionResult Edit(_CRM_AreaEdit crmAreaEdit)
{
_areaServices.Edit(crmAreaEdit);
return RedirectToAction("List");
}
그러나 그것은 작동하지 않습니다. 제발 도와주세요 - 어떻게 편집 할 수 있습니까? 내 실수는 어디에 있습니까? edit를 클릭하면 사전에 전달 된 모델 항목의 형식은 'System.Linq.Enumerable + WhereSelectEnumerableIterator`2 [CRM.Web.Models.CRM_Area, CRM.Web.ViewModel.Area._CRM_AreaList]'이지만 사전에는 'CRM.Web.ViewModel.Area._CRM_AreaEdit'유형의 모델 항목이 필요합니다.
감사하지만 통과되지 내 오류 : 사전에 전달 모델 항목은 'System.Linq.Enumerable + WhereSelectEnumerableIterator'2 [CRM.Web.Models.CRM_Area, CRM.Web.ViewModel 타입이다. Area._CRM_AreaList] '가 있지만이 사전에는'CRM.Web.ViewModel.Area._CRM_AreaEdit '유형의 모델 항목이 필요합니다. –