Как вернуть SelectList из SelectListItem?
Привет Друзья,
Я работаю с Dropdownlist в mvc4 . Мне нужно вернуть список выбора, чтобы привязать выпадающий список к редактированию . но я получаю ошибку "не может неявно преобразовать тип" System.Web.Mvc.SelectList " в " System.Коллекции.Универсальный.Список<система.веб.в MVC.списка и GT;" . Поэтому, пожалуйста, помогите мне перейти в 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; }
обзорная страница:
<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>
Foothill
Начиная С Системы.Коллекции.Общий.List и System.Web.Mvc.SelectList не являются производными от одних и тех же базовых классов (за исключением Object), вы не можете выполнить явное или неявное преобразование для них. Проще всего было бы сделать копию один к одному между списками.