NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Asp.net MVC - List a metoda httppost

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
asoft
Člen
Avatar
asoft:11.2.2016 12:32

Ahoj.

  1. V Controlleri v metóde HttpGet Index() naplním DropDownList hodnotami a predám ich do

    ViewBag.Zazna­my_DropDownList

  2. Vo View mám naplnený DropDownList
@Html.DropDownListFor(model => model.Objednavka.Zaznamy, @ViewBag.Zaznamy_DropDownList as SelectList, htmlAttributes: new { @class = "form-control" })

+ mám tam nejaký TextBox.
3. Kliknem na <input type="submit" id="Zapis">
4. V Controlleri v metóde HttpPost Index() otestujem TextBox hodnotu a zistím, že je nesprávna.

Keďže ViewBag.Zazna­my_DropDownList = null,
musím znova naplniť ViewBag.Zazna­my_DropDownLis­t.
Ale na formulári mám viacero rôznych DropDownListov
a ich hodnoty sú stále také isté aké boli v metóde HttpGet Index().
Čiže ich znova musím ťahať zo servera.

Otázka: Ako postupovať tak, aby som hodnoty DropDownListov uložené v rôznych ViewBag
nemusel opäť načítavať.

  • Dá sa pri tom použiť Ajax ? a ak áno tak ako ?
  • Alebo je aj iná možnosť ?
 
Odpovědět
11.2.2016 12:32
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na asoft
vajkuba1234:11.2.2016 13:54

Nevim, zda jsem to spravne pochopil, ale naplnit Viewbag dropdownlistem jsem musel jak v GET tak i POST variante action metody a zminit to i v bindingu (pokud tam mas jednotlive vlastnosti rozepsane). Tech par stringu nebude mit zase takove naroky na db, ne?

Nahoru Odpovědět
11.2.2016 13:54
No hope, no future, JUST WAR!
Avatar
asoft
Člen
Avatar
Odpovídá na vajkuba1234
asoft:11.2.2016 14:46

Správne si to pochopil. Ale mám na forme asi 10 rôznych dropdownlistov a v niektorých je viac ako 1000 riadkov. A to už viditeľne trvá dlhšie, ako keby tam bolo napr. 50 riadkov. Viem, mohol by sa tam urobiť filter a ponúknuť len napr. prvých 50 riadkov a keby potrebovali ďalšie, tak by si ich museli vypýtať. Ale zákazník to tak chce.

 
Nahoru Odpovědět
11.2.2016 14:46
Avatar
vajkuba1234
Člen
Avatar
vajkuba1234:11.2.2016 16:16

Koukni na toto:

http://stackoverflow.com/a/20961765
Nahoru Odpovědět
11.2.2016 16:16
No hope, no future, JUST WAR!
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na asoft
vajkuba1234:12.2.2016 12:57

Jak jsi to nakonec vyresil?

Nahoru Odpovědět
12.2.2016 12:57
No hope, no future, JUST WAR!
Avatar
asoft
Člen
Avatar
asoft:12.2.2016 16:01

Zatiaľ nijako.
Ale pozeral som tento odkaz:
http://www.codeproject.com/…r-in-ASP-NET

Vyzerá to, že predal naplnený List z View do Controllera. A presne toto potrebujem.

 
Nahoru Odpovědět
12.2.2016 16:01
Avatar
asoft
Člen
Avatar
asoft:6.3.2016 11:46

Nakoniec som to vyriešil cez jQuery a Ajax. Ide to perfektne.

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
6.3.2016 11:46
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 7 zpráv z 7.