MVC表单提交ORDERMetadata

时间:2014-10-15 07:27:28

标签: c# entity-framework asp.net-mvc-4

我有一个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);

}

1 个答案:

答案 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);
  }
}