В моем контроллере Simulacion есть следующий код:
[Authorize]
public ActionResult Create()
{
Simulacion simulacion = new Simulacion();
MateriaRepository materia = new MateriaRepository();
EvaluadorRepository evaluador = new EvaluadorRepository();
ViewData["Materias"] = new SelectList(materia.FindAllMaterias().ToList(), "ID", "Nombre");
ViewData["Evaluadors"] = new SelectList(evaluador.FindAllEvaluadors().ToList(), "ID", "Nombre");
return View(simulacion);
}
[AcceptVerbs(HttpVerbs.Post), Authorize]
public ActionResult Create(Simulacion simulacion)
{
if (ModelState.IsValid)
{
repo.Add(simulacion);
repo.Save();
return RedirectToAction("Details", new { id = simulacion.ID });
}
return View(simulacion);
}
Когда я запускаю действие Создать, я вижу, что выпадающий список работает очень хорошо. Я могу выбрать из списка существующих Материалов или Оценщиков. Когда я пытаюсь выполнить действие POST Create, я получаю исключение, размещенное вверху.
Вот как я могу отобразить выпадающий список:
<div class="editor-field">
<%: Html.DropDownList("IDMateria", (SelectList)ViewData["Materias"])%>
<%: Html.ValidationMessageFor(model => model.IDMateria) %>
</div>
Я в замешательстве, потому что я использовал этот же код в другой области моего же приложения, и он работает, я просто изменил имена переменных, чтобы соответствовать этому варианту использования.