我在视图模型方面遇到问题,当我尝试将新的注册表添加到我的数据库中时,当我使用视图模型键入视图时,我得到了DbEntityValidationErrors
。
这是使用视图模型的代码:
[HttpPost]
public ActionResult Create(Annonce annonce)
{
/*
if (ModelState.IsValid)
{
*/
_userservice.addannonce(annonce);
return RedirectToAction("Index");
/*
}
return View(new AnnonceView(annonce));
* */
}
但是当我直接在视图上使用我的实体域 Annonce 时,有任何问题。请帮帮我,对不起我的英语不好
我确信您的addounce方法需要您的实体模型类型的对象。不是视图模型。视图模型特定于处理视图。它与实体模型不同。不能将按原样创建的视图模型发送到实体框架以保存它。您需要发送实体模型。因此,您可能可以读取ViewModel的值并设置为实体模型的相关属性值,并将其发送以进行保存。像这样的东西
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);
有像AutoMapper这样的库可以执行此映射,您可以查看它们,