Asp.net mvc 4 没有类型为';IEnumerable<;选择列表项>';那有钥匙';M#u类型';

Asp.net mvc 4 没有类型为';IEnumerable<;选择列表项>';那有钥匙';M#u类型';,asp.net-mvc-4,Asp.net Mvc 4,这是我的控制器动作 [HttpGet] public ActionResult AddDrug() { UserDB db = new UserDB(); ViewData["MedType"] = new SelectList(db.mtype, "MID", "M_TYPE"); return View(); } 这是Post方法 [HttpPost] [ValidateAntiForgeryT

这是我的控制器动作

        [HttpGet]
    public ActionResult AddDrug()
    {
        UserDB db = new UserDB();
        ViewData["MedType"] = new SelectList(db.mtype, "MID", "M_TYPE");
        return View();
    }
这是Post方法

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult AddDrug(Drug drug)
    {
        UserDB db = new UserDB();
        if (ModelState.IsValid)
        {
            db.drugs.Add(drug);
            db.SaveChanges();
            ModelState.Clear();
            TempData["AlertMessage"] = "Medicine Type Added Sucessfully";
            return View();
        }
        return View(drug);
    }
这是我的看法

<div class="editor-label">
        @Html.LabelFor(model => model.M_TYPE)
    </div>
    <div class="editor-field">
        @Html.DropDownListFor(model => model.M_TYPE,ViewData["MedType"] as IEnumerable<SelectListItem>,"(none)")
        @Html.ValidationMessageFor(model => model.M_TYPE)
    </div>

@LabelFor(model=>model.M_类型)
@Html.DropDownListFor(model=>model.M_类型,ViewData[“MedType”]作为IEnumerable,“(无)”)
@Html.ValidationMessageFor(model=>model.M_类型)

现在我不想将数据从下拉列表插入数据库,但返回视图时会出现错误,需要重新分配
选择列表
,否则它将为
,导致该异常(另请参见关于重定向的说明)


您需要重新分配
SelectList
,然后才能在POST方法中返回视图(其
null
,这会导致该异常)的可能副本,然后接受此答案以及对您的问题的所有其他答案,如果您评论该答案有效!
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddDrug(Drug drug)
{
    UserDB db = new UserDB();
    if (ModelState.IsValid)
    {
        db.drugs.Add(drug);
        db.SaveChanges();
        // ModelState.Clear(); // don't do this!
        TempData["AlertMessage"] = "Medicine Type Added Sucessfully";
        // return View(); // don't do this!
        return RedirectToAction("AddDrug"); // do this instead
    }
    ViewData["MedType"] = new SelectList(db.mtype, "MID", "M_TYPE"); // add this
    return View(drug);
}