Avatar
ratpile
Člen
Avatar
ratpile:

Ahoj

vytvářit Create view pro zadávací formulář, zatim jednoduše :

public ActionResult Create(Games games)
       {
           if (ModelState.IsValid)
           {

               _entities.Games.Add(games);
               _entities.SaveChanges();
               return RedirectToAction("Index");
           }


           return View(games);
       }

view vypadá takto:

<div class="form-group">
          @Html.LabelFor(model => model.Genre_Id, "Genre_Id", htmlAttributes: new { @class = "control-label col-md-2" })
          <div class="col-md-10">
              @Html.DropDownList("Genre_Id", null, htmlAttributes: new { @class = "form-control" })

              @Html.ValidationMessageFor(model => model.Genre_Id, "", new { @class = "text-danger" })
          </div>

Genre_Id je jinak cizím klíčem pro samostatnou tabulku žánrů

výsledkem je error:

here is no ViewData item of type 'IEnumerable<Se­lectListItem>' that has the key 'Genre_Id'.

  • @Html.DropDow­nList("Genre_Id", null, htmlAttributes: new { @class = "form-control" })*

netuším co s tím nebo jsem uplně blbej

díky moc za každou radu

Editováno 31. března 21:46
 
Odpovědět 31. března 21:45
Avatar
ratpile
Člen
Avatar
ratpile:

respektive.. dle mého mrzkého soudu je chyba v tom že dropdownlist požaduje data ve formu nějaké kolekce (listu), dájí se mu nějak předat data, která nejsou v listu ale pouze v sql/entity tabulce?

 
Nahoru Odpovědět 31. března 22:04
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na ratpile
vajkuba1234:

Ja jsem toto resil take, a to zpusobem, ze v GET metode jsem hodnoty dropdownu predal pomoci ViewBagu, a to nasledovne:

ViewBag.Genres = new SelectList(db.Zanry, "IdZanr", "NazevZanr");

Ve view jsem potom pridal cizi klic, pres ktery se nactou udaje z druhe tabulky...

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 1. dubna 0:51
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
ratpile
Člen
Avatar
Odpovídá na vajkuba1234
ratpile:

Super, funguje. Díky moc !

 
Nahoru Odpovědět  +1 1. dubna 22:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.