首页 > 解决方案 > '没有 'IEnumerable 类型的 ViewData 项' 具有键 'IsWorkingID

问题描述

我正在创建一个 ASP.NET MVC 注册表单,并在我的表单中使用下拉列表,但是当我点击视图中的提交按钮时,会发生此错误:

System.InvalidOperationException:“没有具有键“IsWorkingID”的“IEnumerable”类型的 ViewData 项。

我尝试了不同的方法,但都没有奏效。

这是我的模型:

[Required(ErrorMessage = "Field Required")]
[Display(Name = "Do you work in a medical practice?")]
public int IsWorkingID { get; set; }

这是我的控制器:

public class UserController : Controller
{
    // GET: User
    public ActionResult Index()
    {
        try
        {
            MyDBEntities db = new MyDBEntities();

            List<WorkingDetail> list = db.WorkingDetails.ToList();
            ViewBag.WorkingDetail = new SelectList(list, "IsWorkingID", "IsWorking");

            return View();
        }
        catch (InvalidOperationException exception)
        {
             throw exception;
        }
    }

    [HttpPost]
    public ActionResult SaveRecord(UserViewModel model)
    {
        if (!ModelState.IsValid)
        {
            return View("Index");
        }
        else
        {
            try
            {
                MyDBEntities db = new MyDBEntities();

                User userObj = new User();
                userObj.FirstName = model.FirstName;
                userObj.LastName = model.LastName;
                userObj.Email = model.Email;
                userObj.PhoneNo = model.PhoneNo;
                userObj.IsWorkingID = model.IsWorkingID;

                db.Users.Add(userObj);
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                 throw ex;
            }
        }
    }
}

这是我的看法:

@Html.LabelFor(model => model.IsWorkingID)

@Html.ValidationMessageFor(model => model.IsWorkingID, "", new { @class = "text-danger" })
@Html.DropDownListFor(model => model.IsWorkingID, ViewBag.WorkingDetail as SelectList, "", new { @class = "form-control" })

当我正确填写表单时,存储在 db 中的值但是当我将任何字段留空时ViewBag返回空值。

但它应该向我显示表单字段上的错误消息是必需的,而不是

InvalidOperationException - 没有具有键“IsWorkingID”的“IEnumerable”类型的 ViewData 项

标签: c#asp.net-mvcentity-frameworkexceptionvisual-studio-2017

解决方案


推荐阅读