C# “所有拖车的安装错误”;“可用”;存储在数据库中的拖车显示在订单表单的下拉菜单中,以便我可以创建订单

C# “所有拖车的安装错误”;“可用”;存储在数据库中的拖车显示在订单表单的下拉菜单中,以便我可以创建订单,c#,linq,asp.net-mvc-4,razor,entity-framework-6,C#,Linq,Asp.net Mvc 4,Razor,Entity Framework 6,我只想在创建订单时,能够从数据库的下拉菜单中填充所有可用的拖车。在此之后,我应该能够将拖车状态更改为不可用,以便它不再出现在下拉菜单中。因为我不知道如何准确地填充订单中的预告片,所以当我的程序崩溃时。我已经尝试了我所知道的一切。下面是我的一些代码。预告片和订单应该是一对一的关系 public class Trailer { public string SerialNumber { get; set; } public string TrailerNumbe

我只想在创建订单时,能够从数据库的下拉菜单中填充所有可用的
拖车。在此之后,我应该能够将拖车状态更改为不可用,以便它不再出现在下拉菜单中。因为我不知道如何准确地填充订单中的预告片,所以当我的程序崩溃时。我已经尝试了我所知道的一切。下面是我的一些代码。预告片和订单应该是一对一的关系

public class Trailer
    {
        public string SerialNumber { get; set; }
        public string TrailerNumber { get; set; }
        public string TrailerStatus { get; set; }

        public int TrailerID { get; set; }

        //has a one to one relationship with order
        public virtual Order orderforTrailer { get; set; }

        public Trailer()
        {
            TrailerStatus = "Avaliable";
        }
    }

 public class Order
{
    public string OrderNumber { get; set; }
    public string OrderStatus { get; set; }

    public int OrderID { get; set; }
    //has a one to one relationship with Trailer
    public virtual Trailer TrailerForLoad { get; set; }

    public Order()
    {
        OrderStatus = "Available";
    }
}

    public IActionResult Add()
    {
        // passes in the list of available trailers in the order form
        IList<Trailer> trailerForLoad = context.Trailers.Include     
        (c =>c.TrailerStatus == "Avaliable").ToList();

        AddOrderViewModel addOrderViewModel = new      
        AddOrderViewModel(trailerForLoad);

        return View(addOrderViewModel);
    }
[HttpPost]
    public IActionResult Add(AddOrderViewModel addOrderViewModel)
    {
        if (ModelState.IsValid)
        {
            Order newOrder = new Order()
            {
                OrderNumber = addOrderViewModel.OrderNumber,       

                TrailerForLoad = context.Trailers.Where(x => x.TrailerID == addOrderViewModel.TrailerID).Single()

            };

            context.Orders.Add(newOrder);

            trailerSelected = context.Trailers.Where(x => x.TrailerID == addOrderViewModel.TrailerID).Single();

            trailerSelected.TrailerStatus = "Unavilable";
            context.SaveChanges();

            return Redirect("/Order");
        }

        return View(addOrderViewModel);
    }
 Trailer trailerSelected = new Trailer();
公共类预告片
{
公共字符串序列号{get;set;}
公共字符串TrailerNumber{get;set;}
公共字符串TrailerStatus{get;set;}
public int TrailerID{get;set;}
//与订单有一对一的关系
公共虚拟订单orderforTrailer{get;set;}
公共拖车()
{
TrailerStatus=“可用”;
}
}
公共阶级秩序
{
公共字符串OrderNumber{get;set;}
公共字符串OrderStatus{get;set;}
公共int-OrderID{get;set;}
//与拖车有一对一的关系
公共虚拟拖车拖车装载{get;set;}
公共秩序()
{
OrderStatus=“可用”;
}
}
public IActionResult Add()
{
//通过订单中的可用拖车列表
IList trailerForLoad=context.Trailers.Include
(c=>c.TrailerStatus==“可用”).ToList();
AddOrderViewModel AddOrderViewModel=新建
AddOrderViewModel(trailerForLoad);
返回视图(addOrderViewModel);
}
[HttpPost]
公共IActionResult添加(AddOrderViewModel AddOrderViewModel)
{
if(ModelState.IsValid)
{
订单newOrder=新订单()
{
OrderNumber=addOrderViewModel.OrderNumber,
TrailerForLoad=context.Trailers.Where(x=>x.TrailerID==addOrderViewModel.TrailerID).Single()
};
context.Orders.Add(newOrder);
trailerSelected=context.Trailers.Where(x=>x.TrailerID==addOrderViewModel.TrailerID).Single();
trailerSelected.TrailerStatus=“不可用”;
SaveChanges();
返回重定向(“/订单”);
}
返回视图(addOrderViewModel);
}
拖车拖车选定=新拖车();

您尚未解释问题所在。创建一个下拉菜单,并将控件设置为disabled(禁用),是相当容易的事情。也许会雇佣一名程序员?

好吧,我上面的代码是我想要实现的,但我显然没有实现我的目标,因为当我试图拉订单时,它崩溃了