Продолжая свою систему бронирования транспортных средств, я уже начал работать над самой функцией резервирования, и я застрял в том, как заполнить поле водителя, поскольку оно основано на поле транспортного средства. Существует два типа транспортных средств: тип офиса, в котором драйвер уже зависит от предыдущих функций, а затем тип поставщика изначально не имеет водителя до функции резервирования, где вы можете выбрать из выпадающего поля. В моем коде контроллера типы поставщиков связаны с DriverID, равным 0. Я не совсем уверен, как реализовать оператор if, вот мой код:
Контроллер:
//RESERVE
public ActionResult ReserveInitial()
{
ViewBag.DriverID = new SelectList(db.Drivers, "DriverID", "DriverLastName");
ViewBag.VehicleID = new SelectList(db.Vehicles, "VehicleID", "VehicleMake");
var checkVehicle = db.ReservedVehicleDetails.Count(x => x.VehicleID == 1);
return View();
}
[HttpPost]
public ActionResult ReserveInitial(ReservationViewModel RV)
{
var repo = new ManagementRepository();
var resini = new ReservedVehicleInitial
{
Id = RV.Id,
BorrowerLastName = RV.BorrowerLastName,
BorrowerFirstName = RV.BorrowerFirstName,
VehicleID = RV.VehicleID,
Reason = RV.Reason,
ProjectID = RV.ProjectID,
Location = RV.Location,
DateReserved = RV.DateReserved,
TimeStart = RV.TimeStart,
DateCreated = DateTime.Now,
UserID = RV.UserID,
DriverID = RV.DriverID
};
Driver driver = new Driver();
if (resini.DriverID == 0)
{
ViewBag.DriverID = new SelectList(db.Drivers, "DriverID", "DriverLastName" + ", " + "DriverFirstName");
}
else
{
using (var db = new VehicleReservationEntities())
{
ViewBag.DriverID = driver.DriverID;
}
}
using (var db = new VehicleReservationEntities())
{
repo.ReserveInitial(resini);
}
return RedirectToAction("List");
}
Просмотр модели:
public class ReservationViewModel
{
public int Id { get; set; }
public string BorrowerLastName { get; set; }
public string BorrowerFirstName { get; set; }
public DateTime DateReserved { get; set; }
public int? VehicleID { get; set; }
public int? DriverID { get; set; }
public string VehicleMake { get; set; }
public string DriverName { get; set; }
public string VehicleType { get; set; }
public string OdometerStart { get; set; }
public string OdometerEnd { get; set; }
public string Liters { get; set; }
public string AmountPaid { get; set; }
public string ORNumber { get; set; }
public string Location { get; set; }
public string Reason { get; set; }
public int? ProjectID { get; set; }
public DateTime DateCreated { get; set; }
public string UserID { get; set; }
public TimeSpan TimeStart { get; set; }
public TimeSpan TimeEnd { get; set; }
//
public string BorrowerFullName
{
get { return BorrowerLastName + ", " + BorrowerFirstName; }
set { }
}
//
public string DriverLastName { get; set; }
public string DriverFirstName { get; set; }
public string FullName { get; set; }
}
Просмотр:
<div class="col-md-12">
<div class="col-md-4">
<div class="form-group">
<div class="form-group control-label">
<label>
Vehicle
</label>
</div>
<div id="Vehicle">
@Html.DropDownList("VehicleID", null, "", htmlAttributes: new { @class = "form-control", @id = "VehicleID" })
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<div class="form-group control-label">
<label>
Driver
</label>
</div>
<div id="Driver">
@Html.DropDownList("DriverID", null, "", htmlAttributes: new { @class = "form-control", @id = "DriverID" }) @Html.ValidationMessageFor(model => model.DriverID, "", new { @class = "text-danger" })
@Html.ValidationMessageFor(model => model.DriverID, "", new { @class = "text-danger" })
</div>
</div>
</div>