我正在 mvc4 中使用 DropdownList。我需要返回一个选择列表以在编辑时绑定下拉列表,但我收到一个错误"Cannot implicitly convert type 'System.Web.Mvc.SelectList' to 'System.Collections.Generic.List<System.Web.Mvc.SelectList>"
。所以请帮我转换为 SelectList
代码:
public List<SelectList> SelectDoctoronEdit(int id)
{
Gema_Doctor[] doctorList;
doctorList = gema_Doctor.GetDoctor().ToArray();
List<Gema_Doctor> listDoctor = new List<Gema_Doctor>(doctorList);
List<SelectListItem> dropItems = new List<SelectListItem>();
RDM_Patient patientsSelect = rdm_Patient.GetPatient().First(c => c.PatientID == id);
dropItems.Add(new SelectListItem { Text = "--Select--", Value = "" });
foreach (Gema_Doctor doctorValues in listDoctor)
{
RDM_Patient patients = rdm_Patient.GetPatient().First(c => c.PatientID == id);
if (patients.DoctorID == doctorValues.Dr_Id)
{
dropItems.Add(new SelectListItem { Text = doctorValues.Dr_Name, Value = doctorValues.Dr_Id.ToString(), Selected = true });
}
else
{
dropItems.Add(new SelectListItem { Text = doctorValues.Dr_Name, Value = doctorValues.Dr_Id.ToString(), Selected = false });
}
}
//return dropItems;
SelectList s1 = new SelectList(dropItems, "Value", "Text", patientsSelect.DoctorID);
return s1;
}
View Page:
<tr>
<td>
@Html.LabelFor(M => Model.Patient.City)
@Html.TextBoxFor(M => Model.Patient.City)
</td>
<td>
@Html.LabelFor(M => Model.Patient.Add1)
@Html.TextBoxFor(M => Model.Patient.Add1)
</td>
<td>
@Html.LabelFor(M => Model.Patient.Add2)
@Html.TextBoxFor(M => Model.Patient.Add2)
</td>
</tr>
<tr>
<td>
</td>
<td>
@Html.Label("Doctor")
@Html.DropDownListFor(m => Model.Patient.DoctorID.ToString(), (SelectList)ViewBag.doctorType)
</td>
<td>
</td>
</tr>