«Нет элемента ViewData типа« IEnumerable <SelectListItem>», который имеет ключ« IsWorkingID » - PullRequest
0 голосов
/ 20 апреля 2019

Я создаю регистрационную форму ASP.NET MVC и использую раскрывающийся список в своей форме, но когда я нажимаю кнопку отправки в моем представлении, возникает эта ошибка:

System.InvalidOperationException: 'Нет элемента ViewData типа' IEnumerable ', который имеет ключ' IsWorkingID '.

Я пробовал разные методы, но ни один из них не работает.

Это моя модель:

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

Когда я правильно заполняю форму, значения сохраняются в БД, но когда я оставляю любое поле пустым, ViewBag возвращает нулевое значение.

Но он должен показать, что вместо поля * 1021 требуется сообщение об ошибке в поле формы.

InvalidOperationException - нет элемента ViewData типа 'IEnumerable', который имеет ключ 'IsWorkingID'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...