Я просто хочу иметь возможность заполнить все available Trailers from the database in a dropdown menu
при создании заказа.После чего я смогу изменить статус трейлера на недоступный, чтобы it does not appear in the dropdown menu anymore
.Моя программа дает сбой, потому что я не знаю, как точно заполнить трейлеры в форме заказа.Я перепробовал все, что знаю. Ниже приведены некоторые из моих кодов. Предполагается, что у трейлера и ордера есть отношения один на один
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();