MVC表单提交ORDERMetadata

本文关键字:ORDERMetadata 表单提交 MVC | 更新日期: 2023-09-27 18:26:30

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

MVC表单提交ORDERMetadata

将方法更改为

[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);
  }
}