Решение этой проблемы приведено ниже, если кто-то еще попадет в ту же ситуацию: В ViewModel создайте свойства для выпадающего списка, чтобы извлечь значения из базы данных и отправить выбранное значение в db.
CreateBillViewModel:
public class CreateBillViewModel
{
-------- --------
public IEnumerable<SelectListItem> PatientAppointmentDate { get; set; }
public int PatientAppointmentID { get; set; }
-------- --------
}
В Контроллере :
public ActionResult Create(int? Patient_id)
{
CreateBillViewModel model = new CreateBillViewModel();
if (Patient_id != null)
{
model.PatientAppointmentDate = (from p in db.tblPatientAppointments
where p.patient_id == Patient_id
select new SelectListItem
{
Text = p.AppointmentDate,
Value = p.ID.ToString()
}).ToList();
}
return View(model);
}
Получить его в виде, подобном этому:
Представление:
@Html.DropDownListFor(m => m.PatientAppointmentID, Model.PatientAppointmentDate ?? new List<SelectListItem>(), "- Select Appointment Date - ", new { @class = "form-control" })
После отправки формы, если вы хотите, чтобы одна и та же страница открывалась и в раскрывающемся списке были те же значения, что и в HTTPPOST, отправьте ее обратно следующим образом.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(CreateBillViewModel model, int? Patient_id)
{
if (ModelState.IsValid)
{
//Save into db
}
model.PatientAppointmentDate = (from p in db.tblPatientAppointments
where p.patient_id == Patient_id
select new SelectListItem
{
Text = p.AppointmentDate,
Value = p.ID.ToString()
}).ToList();
}
return View(model);
}
Вот так и была решена моя проблема. Для более подробной информации можно сослаться на эту ссылку: ThisLink