【问题标题】:Edit a record in MVC multi layer在 MVC 多层中编辑记录
【发布时间】: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


    【解决方案1】:

    在您的存储库中尝试保存更改。 请记住,您需要在编辑后保存更改。

    public void Edit(CRM_Area crmArea)
    {
        _db.Entry(crmArea).State=EntityState.Modified;
        _db.SaveChanges();
    }
    

    【讨论】:

    • 谢谢,但我的错误没有通过:传入字典的模型项的类型为 'System.Linq.Enumerable+WhereSelectEnumerableIterator`2[CRM.Web.Models.CRM_Area,CRM.Web. ViewModel.Area._CRM_AreaList]',但此字典需要类型为 'CRM.Web.ViewModel.Area._CRM_AreaEdit' 的模型项。
    猜你喜欢
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    相关资源
    最近更新 更多