IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: ASP .NET MVC - Binding modelů, obsahující kolekce

Aktivity
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:20.4.2015 19:00

Ahoj, narážím na nedokonalé znalosti ohledně MVC a bindování modelů.
Mám vytvořený ViewModel (Pro jednoduchost, jedná se o PersonViewModel, obsahující Věk, Jméno a kolekcí Itemů).
Dejme tomu, že chci editovat pouze Jméno, věk a Itemy se pouze vypíšou.
Proto ve View, vytvořím form

@using (Html.BeginForm("Confirm", "Order", FormMethod.Post)

Pro položky, které chci jen zobrazit využiju @Html.Display­For()... a aby se mi hodnota poslala v POST zpět, vytvořím ještě duplikátní HiddenInput
@Html.HiddenFor()
U Věku to funguje, myslel jsem si, že stačí vytvořit i Hidden pro kolekci, ale není tomu tak.

Napadlo mě samozřejmě to vyřešit pomocí ViewData, Session, ale neexistuje lepší řešení?

Odpovědět
20.4.2015 19:00
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Nymsa
David Hartinger:20.4.2015 21:47

A jaký má smysl posílat serveru zpět něco, co zná?

Nahoru Odpovědět
20.4.2015 21:47
New kid back on the block with a R.I.P
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Hartinger
Petr Nymsa:21.4.2015 8:54

Nezná, v jednom kroku to vyplnil, v další akci dodělá jenom zbytek. Řeším to přes Session

Nahoru Odpovědět
21.4.2015 8:54
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Artas
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Artas:21.4.2015 9:01

Tohle by ti mohlo pomoct: http://www.hanselman.com/…onaries.aspx , pripadne http://stackoverflow.com/…d-collection .

Melo by to pomoci toho indexovani fungovat i u nested collections, ale zatim jsem to nezkousel

 
Nahoru Odpovědět
21.4.2015 9:01
Avatar
Artas
Tvůrce
Avatar
Odpovídá na Artas
Artas:21.4.2015 9:22

Konkretne ten priklad s for cyklem ze StackOverflow funguje

 
Nahoru Odpovědět
21.4.2015 9:22
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Nymsa
David Hartinger:21.4.2015 9:31

Stejně to nějak nechápu, tak to máš v session, ne?

Nahoru Odpovědět
21.4.2015 9:31
New kid back on the block with a R.I.P
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:21.4.2015 9:46

Ale k čemu pak používat ViewModely když to můžu cpát do Session?

Nahoru Odpovědět
21.4.2015 9:46
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Nymsa
David Hartinger:21.4.2015 9:58

ViewModel ti umožňuje jednoduše obsluhovat formuláře. Předpokládám, že ho máš někdy předtím i na ty položky. Potom si to z něj můžeš uložit normálně do té session a zní potom rovnou do DB. Přijde mi zbytečné dávat ta data znovu k uživateli a pak znovu zpátky na server, ale třeba to bude nakonec elegantní, v ASPčku jsem teď dlouho nedělal.

Nahoru Odpovědět
21.4.2015 9:58
New kid back on the block with a R.I.P
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 8 zpráv z 8.