'具有键'depID'的ViewData项目的类型为'System.String',但必须类型为'IEnumerable <selectlistitem>'。”

时间:2018-08-07 09:42:15

标签: asp.net-mvc

我正在尝试在asp.net mvc中验证我的CRUD应用程序,但是当我创建一个部门并且想要重新创建该现有部门时,必须提示我该部门存在。但这向我显示了此错误。

““具有键'depID'的ViewData项的类型为'System.String',但必须为'IEnumerable'类型。” 当我要测试对现有注册学校的验证时,会显示此错误 这是我的程序控制器代码

public ActionResult Create([Bind(Include = "progID,progName,depID,IsDeleted")] programme programme)
        {
            try
            {
                using (MyCrudDb db = new MyCrudDb())
                {
                    if (valid.progExist(programme))
                    {
                        ModelState.AddModelError(Guid.NewGuid().ToString(), "Programme Already Exist");
                        return View(programme);
                    }
                    db.programmes.Add(programme);
                    db.SaveChanges();
                }
                return RedirectToAction("Index");
            }
            catch
            {
                ViewBag.depList = new SelectList(db.departments, "depID", "depName");
                return View(programme);
                // return View();
            }


        }

这是我对下拉列表的看法

 <div class="form-group">
            @Html.LabelFor(model => model.depID, "depID", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
               @* @Html.DropDownList("depID", null, htmlAttributes: new { @class = "form-control" })*@
                @Html.DropDownListFor(m => m.depID, ViewBag.depList as SelectList, htmlAttributes: new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.depID, "", new { @class = "text-danger" })
            </div>
        </div>

该下拉列表运行得很好,但是我不知道为什么当我要测试现有程序的验证时错误仍然显示

谢谢。

0 个答案:

没有答案