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

C# .NET .NET (C# a Visual Basic) ASP .NET MVC - Binding modelů, obsahující kolekce American English version English version

Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:

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

Nahoru Odpovědět 20.4.2015 21:47
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

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
Redaktor
Avatar
Odpovídá na Petr Nymsa
Artas:

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
Redaktor
Avatar
Odpovídá na Artas
Artas:

Konkretne ten priklad s for cyklem ze StackOverflow funguje

 
Nahoru Odpovědět 21.4.2015 9:22
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:

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

Nahoru Odpovědět 21.4.2015 9:31
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.