Witam mam taki problem, że kiedy wchodzę w widok edycji nie ładuje mi danych z bazy w dwóch dropdownach, jestem zmuszony wybrać od nowa rodzaj pojazu(kategoria) wtedy załadowują się listy. Zwykłe dodawanie danych do bazy przez dropdowny działa, prawidłowo listy się ładują. Proszę jakąkolwiek pomoc. Przepraszam za chaos w kodzie. Na czerwono są zaznaczone dropdowny które nie działają.
dropdowny
baza
widok

Kopiuj
@Html.DropDownListFor(m => m.IDTypPojazdu, new SelectList(""), "-- Wybierz --", new { @class = "form-control" })
@Html.DropDownListFor(m => m.IDNapedu, new SelectList(""), "-- Wybierz --", new { @class = "form-control" })

kontroller

Kopiuj
  public ActionResult GetTypList(int IDKategorie)
    {
        WypozyczalniaEntities db = new WypozyczalniaEntities();

        List<TypPojazdu> TypList = db.TypPojazdu.Where(x => x.IDKategorie == IDKategorie).ToList();
        ViewBag.StateOptions = new SelectList(TypList, "IDTypPojazdu", "Nazwa");
        return PartialView("TypPartial");
    }
    public ActionResult GetNapedList(int IDKategoriee)
    {
        WypozyczalniaEntities db = new WypozyczalniaEntities();
        List<Naped> NapedList = db.Naped.Where(x => x.IDKategorie == IDKategoriee).ToList();
        ViewBag.StateOptionss = new SelectList(NapedList, "IDNapedu", "Nazwa");
        return PartialView("NapedPartial");
Kopiuj
 public async Task<ActionResult> Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Pojazd pojazd = await db.Pojazd.FindAsync(id);
            if (pojazd == null)
            {
                return HttpNotFound();
            }
            ViewBag.SkrzynieBiegowList = new SelectList(GetSkrzyniaBiegowList(), "IDSkrzyniBiegow", "Nazwa");
            ViewBag.RodzajePaliwList = new SelectList(GetRodzajPaliwaList(), "IDRodzajPaliwa", "Nazwa");
            ViewBag.KategorieList = new SelectList(GetKategorieList(), "IDKategorie", "Nazwa");
            ViewBag.TypList = new SelectList(GetTypPojazduList(), "IDTypPojazdu", "Nazwa");
            return View(pojazd);
        }

        // POST: Pojazds/Edit/5
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Edit([Bind(Include = "IDPojazdu,IDSkrzyniabiegow,IDKategorie,IDRodzajPaliwa,Marka,Model,Kolor,Pojemnosc_silnika,Rok_produkcji,IloscOsob,Przebieg,Konie_mechaniczne,Numer_rejestracyjny,Kaucja,Cena_brutto")] Pojazd pojazd)
        {
            if (ModelState.IsValid)
            {
                db.Entry(pojazd).State = EntityState.Modified;
                await db.SaveChangesAsync();
                return RedirectToAction("Index");
            }
            ViewBag.SkrzynieBiegowList = new SelectList(GetSkrzyniaBiegowList(), "IDSkrzyniBiegow", "Nazwa");//???
            ViewBag.RodzajePaliwList = new SelectList(GetRodzajPaliwaList(), "IDRodzajPaliwa", "Nazwa");//???
            ViewBag.KategorieList = new SelectList(GetKategorieList(), "IDKategorie", "Nazwa");// ????
            ViewBag.TypList = new SelectList(GetTypPojazduList(), "IDTypPojazdu", "Nazwa");
            return View(pojazd);
        }

częściowe widoki

Kopiuj
<option value="">-- Wybierz --</option>
@if (ViewBag.StateOptions != null)
{

    foreach (var item in ViewBag.StateOptions)
    {

        <option value="@item.Value">@item.Text </option>

    }

}
<option value="">-- Wybierz --</option>
@if (ViewBag.StateOptionss != null)
{

    foreach (var item in ViewBag.StateOptionss)
    {

        <option value="@item.Value">@item.Text </option>

    }

}

js do dropdownów

Kopiuj
<script>

    $(document).ready(function () {

        $("#IDKategorie").change(function () {

            var IDKategorie = $(this).val();
            debugger
            $.ajax({

                type: "Post",
                url: "/Pojazd/GetTypList?IDKategorie=" + IDKategorie,
                contentType: "html",
                success: function (response) {
                    debugger
                    $("#IDTypPojazdu").empty();
                    $("#IDTypPojazdu").append(response);

                }

            })

        })

    })

</script>
<script>

    $(document).ready(function () {

        $("#IDKategorie").change(function () {

            var IDKategorie = $(this).val();
            debugger
            $.ajax({

                type: "Post",
                url: "/Pojazd/GetNapedList?IDKategoriee=" + IDKategorie,
                contentType: "html",
                success: function (response) {
                    debugger
                    $("#IDNapedu").empty();
                    $("#IDNapedu").append(response);

                }

            })

        })

    })

</script>