0

我的视图模型有问题,当我尝试将新的注册添加到我的数据库时,当我使用我的视图模型键入视图时,我得到了DbEntityValidationErrors.

这是使用 viewmodel 的代码:

    [HttpPost]
    public ActionResult Create(Annonce annonce)
    {
        /*
        if (ModelState.IsValid)
        {
          */  

            _userservice.addannonce(annonce);

            return RedirectToAction("Index");
        /*
        }

       return View(new AnnonceView(annonce));
         * */
    } 

但是当我直接在视图上使用我的实体域 Annonce 时,就会出现任何问题。请帮助我,对不起我的英语不好

4

1 回答 1

1

我假设您的 addannounce 方法需要您的 EntityModel 类型的对象。不是视图模型。ViewModel 专门用于处理视图。它与您的实体模型不同。您不能将创建的视图模型原样发送到实体框架以保存它。您需要发送一个实体模型。因此,您可能可以读取 ViewModel 的值并将其设置为 Entity Model 的相关属性值并将其发送以进行保存。像这样的东西

YoueEntity.Announce objEntityAnnounce=new YoueEntity.Announce();
//Read from the posted viewmodel and set the values to entity model.
objEntityAnnounce.ID=annonce.ID;
objEntityAnnounce.Title=annonce.Title;
//Other relevant Properties as well

_userservice.addannonce(objEntityAnnounce);

There are libraries like AutoMapper which does this mapping, You may take a look at them,

于 2012-04-22T15:34:41.100 回答