我有一个ORDER模型,其中包含来自我的.edmx的20多个字段。我用较少的字段创建了一个新模型ORDERMetadata,因此我可以自定义视图中的属性。当我尝试编译 它给了我错误。
错误:
最好的重载方法匹配'System.Data.Entity.DbSet.Add(Mvc5.Models.ORDER)'有一些无效的参数
和
参数1:无法从'Mvc5.Models.ORDERMetadata'转换为'Mvc5.Models.ORDER'
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ORDERMetadata order)
{
try
{
if (ModelState.IsValid)
{
db.ORDERS.Add(order);
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (Exception ex)
{
ViewBag.Error = ex.ToString();
}
return View(order);
}
答案 0 :(得分:0)
将您的方法更改为
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ORDERMetadata model)
{
if (!ModelState.IsValid)
{
return View(model);
}
try
{
Order order = new Order();
// map properties from your view model to the data model
order.Order_Number = model.Order_Number;
... // other properties
db.ORDERS.Add(order);
db.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception ex)
{
ViewBag.Error = ex.ToString();
return View(model);
}
}