Я пишу страницу со списком MVC, которую нужно связать с раскрывающимся списком.
Поскольку я очень младший по сравнению с ASP.net MVC, я не знаю, как заставить раскрывающийся список работать правильно и выбирать динамически.
У меня есть два класса моделей
public class CycleType
{
public int CycleTypeID { get; set; }
public string Type { get; set; }
public List<CycleModel> CycleModels { get; set; }
}
-----------------------------------------------------------
public class CycleModel
{
public int CycleModelID { get; set; }
public int CycleTypeID { get; set; }
public string Model { get; set; }
public virtual CycleType CycleType { get; set; }
}
Затем один класс контроллера,
public class CycleModelController : Controller
{
UnitOfWork<CycleModel> unitOfWork = new UnitOfWork<CycleModel>();
UnitOfWork<CycleType> unitOfWork_cycleType = new UnitOfWork<CycleType>();
...
[HttpGet]
public ActionResult Edit(int CycleModelID)
{
CycleModel cycleModel = unitOfWork.GenericTEntityRepository.GetByID(CycleModelID);
ViewBag.CycleType = new SelectList(unitOfWork_cycleType.GenericTEntityRepository.Get(orderBy: CycleTypes => CycleTypes.OrderBy(CycleType => CycleType.Type)));
return View(cycleModel);
}
...
}
Затем один файл Razor,
<div class="editor-field">
@*Html.DropDownList("CycleType")*@
@*Html.EditorFor(model => model.CycleTypeID)*@
@Html.DropDownListFor(model => model.CycleTypeID,
new SelectList(ViewBag.CycleType, "Type", "CycleTypeID"))
@Html.ValidationMessageFor(model => model.CycleTypeID)
</div>
Когда я запускаю свою программу, Я получаю сообщение об ошибке
DataBinding: 'System.Web.Mvc.SelectListItem' does not contain a property with the name 'Type'.
1) Как я могу исправить этот код?
2) Как сделать выбор элемента динамически?
Каждое предложение будет по-настоящему оценено.