代码之家  ›  专栏  ›  技术社区  ›  Sergio Tapia

具有键“idMateriala”的ViewData项的类型为“System.Int32”,但必须为“IEnumerable<SelectListItem>类型”

  •  4
  • Sergio Tapia  · 技术社区  · 14 年前

    我的模拟控制器中有以下代码:

    [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);
    }
    

    下面是我如何显示下拉列表:

    <div class="editor-field">
                    <%: Html.DropDownList("IDMateria", (SelectList)ViewData["Materias"])%>
                    <%: Html.ValidationMessageFor(model => model.IDMateria) %>
                </div>
    

    我被难住了,因为我在同一个应用程序的另一个领域中使用了相同的代码,而且它可以工作,我只是更改了变量名以适应这个用例。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Daniel Schaffer    14 年前