从Html.DropDownList获取值后出现奇怪的错误

本文关键字:错误 Html DropDownList 获取 | 更新日期: 2023-09-27 17:52:17

我用实体中的数据创建了SelectList SelectList。现在我想把value从DropDownList发送到entity。一切都很好(我从选定的项目中获得了值),但是我在结束

时得到了他的错误

System类型的异常。在System.Web.Mvc.dll中发生了InvalidOperationException,但没有在用户代码中处理附加信息:没有'IEnumerable'类型的ViewData项具有键'Przelew.DaneKont'.

 @Html.DropDownList("Przelew.DaneKont", ViewBag.DaneKontList as SelectList, "-- Wybierz kontot --")

Viewmodel:

 @Html.DropDownList("Przelew.DaneKont", ViewBag.DaneKontList as SelectList, "-- Wybierz kontot --")

控制器:

[Authorize]
        [HttpGet]
        public ActionResult WykonajPrzelew( ) {

            using (var context = new BankAppEntities1())
            {
                konto = context.Konto.SqlQuery("SELECT * FROM dbo.Konto WHERE UserId = '" + userIdValue + "' ").ToList();
            }

            WykonajPrzelewMultipleView mymodel = new WykonajPrzelewMultipleView();
            mymodel.Konta = konto;
            List<SelectListItem> items = new List<SelectListItem>();

            foreach (var item in konto){
                items.Add(new SelectListItem { Text = item.Nazwa+ "  Saldo :"+item.Saldo , Value = item.KontoId+"" });
             }
            ViewBag.DaneKont = items;
            SelectList selectList = new SelectList(items, "Value", "Text");
            ViewBag.DaneKontList = selectList;


            return View(mymodel);
        }

      [Authorize]
        [HttpPost]
        public ActionResult WykonajPrzelew(WykonajPrzelewMultipleView model)
        {

            string imie = model.Przelew.ImieOdbiorcy;
            string nazwisko = model.Przelew.NazwiskoOdbiorcy;
            int numerOdbiorcy = Convert.ToInt32(model.Przelew.NumerRachunkuOdbiorcy);
            int kontoID = Convert.ToInt32(model.Przelew.DaneKont); // I got Value from List 
            string tytul = model.Przelew.Tytuł;
            string ulica = model.Przelew.Ulica;
            string numerdomu = model.Przelew.nrdomu;
            string kod = model.Przelew.Kodpocztowy;
            string miasto = model.Przelew.Miasto;
       string tyt =model.Przelew.Tytuł;
            decimal kwota = model.Przelew.Kwota;
            DateTime date = System.DateTime.Now;

            using (var context2 = new BankAppEntities1())
            {
                var dane = new Przelew { Imie = imie, Nazwisko = nazwisko, NumerKontaOdbiorcy = numerOdbiorcy, KontoId = "1", NumerKontaNadawcy = 3444666, Ulica = ulica, Nr_domu = numerdomu,Kod_pocztowy="343", Miasto = miasto, Typ = "Normlany", UserId = userIdValue,Kwota=kwota , Date=date , Tytul=tyt };
                context2.Przelew.Add(dane);
                context2.SaveChanges();
            }
            return View();
        }

从Html.DropDownList获取值后出现奇怪的错误

您需要模型上的另一个属性,例如DaneKont,并将视图更改为以下内容:

@Html.DropDownList("DaneKont", (SelectList)ViewBag.DaneKontList, "-- Wybierz kontot --")

在回发时,DaneKont将保留所选值