脚手架ASP.NET MVC的麻烦。当我尝试编辑某些内容时出现400错误

时间:2015-01-21 20:31:50

标签: asp.net asp.net-mvc asp.net-mvc-4

我正在学习ASP.NET MVC,但我遇到了一些问题:

  1. 首先,我已将NORTHWIND数据库添加到我的MVC项目
  2. 然后我为客户,订单,产品等创建了一些控制器。
  3. 要创建控制器,我使用带有视图的脚手架,使用实体框架。
  4. 我写了一些Action方法:

    public ActionResult GetAllCustomersWithOrders()
    {
        var orders = db.Customers.Where(p => p.Orders.Count > 1).ToList();
        return View(orders);
    }
    
    public ActionResult GetAllOrdersFromCustomer()
    {
        var orders = db.Orders.Include(p => p.Employee).Include(p => p.Customer).Include(p => p.Shipper).Where(p => p.ShipCity == "Seattle").ToList();
        return View(orders);
    }
    

    当我尝试编辑订单或客户时,我收到400错误。 以下是调用action方法后得到的内容。当我点击编辑或其他任何我有400错误。

    enter image description here

    这种行为的原因是什么?提前谢谢。

1 个答案:

答案 0 :(得分:-1)

您将拥有给定模型的复合主键,即多于一列作为主键。在脚手架生成的默认视图/控制器中,将单列作为其主键,该键也作为参数之一在方法(内部控制器)中传递。因此,您需要提供所有列,作为action方法以及视图中的参数。 请参阅此链接以获取更多详细信息。 https://www.codeproject.com/Articles/797444/ASP-NET-MVC-Edit-Primary-Key-Values-for-Composite