我用我的实体中的数据创建了SelectList selectList。 现在我想从DropDownList向Entitie发送值。 一切都很好(我从选定的项目中得到了价值),但我得到了他的错误和结束
System.Web.Mvc.dll中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理 附加信息:没有类型为'IEnumerable'的ViewData项目,其密钥为'Przelew.DaneKont'。
@Html.DropDownList("Przelew.DaneKont", ViewBag.DaneKontList as SelectList, "-- Wybierz kontot --")
视图模型:
@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();
}
答案 0 :(得分:1)
您的模型需要其他属性,例如DaneKont
,并将您的视图更改为以下内容:
@Html.DropDownList("DaneKont", (SelectList)ViewBag.DaneKontList, "-- Wybierz kontot --")
在回发时,DaneKont
将保留所选值。