none
звлечение из DropDownList RRS feed

  • Вопрос

  • Здравствуйте!  Проблема в том что нужное значение не заносится в БД, хотя аналогичный кусок кода в другом месте работает:

    Вот что у меня в контроллере, там где я объявляю ViewBag:

      public ActionResult AddVideo()
            {
                var db = new FEContext.FastEatContext();
                ViewBag.ForSelectItem = from items in db.Products
                                            select new SelectListItem()
                {
                    Value = SqlFunctions.StringConvert((double)items.ProductID),
                    Text = items.Name
                };
                return View();
            }

    Вот, что у меня во View(выпадающий список появляется и значениями и индексами заполнен):

     @model NEW_project_18_02_2013.Models.Video
            @using (Html.BeginForm("AddVideo", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
            {
                @Html.EditorFor(s => Model.Video_1)
                @Html.EditorFor(s => Model.Video_2)
                @Html.EditorFor(s => Model.Video_3)
                @Html.DropDownList("ProductID", ViewBag.ForSelectItem as IEnumerable<SelectListItem>)    
            <button type="submit" class="btn">Добавить видео</button>
            }

    И вот что в контроллере при приёме:

     public ActionResult AddVideo(Video us)
            {
                var db = new FEContext.FastEatContext();
                db.Videos.Add(us);
                db.SaveChanges();
                return View();
            }

    Ошибка появляется следующая:

    There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'ProductID'.

    5 марта 2013 г. 13:42

Ответы

  • Он банально не находит в ViewBag поле ForSelectItem.

    Допиши

    public ActionResult AddVideo(Video us)
            {
                var db = new FEContext.FastEatContext();
                db.Videos.Add(us);
                db.SaveChanges();
    	    ViewBag.ForSelectItem = from items in db.Products
                                            select new SelectListItem()
                {
                    Value = SqlFunctions.StringConvert((double)items.ProductID),
                    Text = items.Name
                };
                return View();
            }

    • Помечено в качестве ответа Sm1le291 6 марта 2013 г. 21:16
    6 марта 2013 г. 16:13

Все ответы