Feladat 4: Szűrés¶
Specifikáció¶
A szűrést a kezdőoldalon (Index) kell megvalósítani, minden paraméter URL-ben utazzon! Alapértelmezetten ne legyen semmilyen szűrés (az első feladatban még volt).
A szűréshez az oldal tetején és/vagy alján kell szerepelnie egy lapozósávnak az alábbinak megfelelően:
- összesen egy darab szűrőmező a címeknek
- jelölőnégyzet-lista a típusnak (
TitleType) - minden számhoz, évszámhoz két-két szűrőmező (min-max értékek)
- a műfajokat az első feladat bal oldali "műfajfelhője" helyett a műfajok is jelölőnégyzet listából legyenek választhatók, a feliratok viszont maradjanak ugyanazok (tartalmazzák a számosságokat).
- a műfajok számosságának nem kell módosulnia a szűrés használata során
Megvalósítás lépései¶
Nem kötelező így csinálni, de egy lehetséges megoldás lépései a következők.
-
Vegyél fel egy új
TitleFiltertípusú property-t azIndexModel-beFilternéven. Nem lehetnullértékű, kezdeti értéke legyen üres példány (TitleFilter.Empty). A property automatikusan állítódjon be a HTTP kérés (query string) alapján (BindPropertyattribútum) GET kérés esetén is (SupportsGet). -
Módosítsd a
GetTitlesAsynchívását, hogy az előbb felvett property alapján szűrjön. Próbáld ki, hogy a böngésző címsorában kiegészítve a címet, tudod-e vezérelni a lapozást és a szűrést is.Hogyan tudjuk megadni ezt a komplex objektumot URL paraméterként? Például: &Filter.Genres=Sci-Fi. Ezzel láthatjuk, hogy kitöltődik megfelelően a
Genreslista egyetlen elemmel, ami a Sci-Fi. Ha több elemet szeretnénk megadni, akkor többször soroljuk fel ugyanazt a kulcsot (a query paraméterben szabvány szerint nem történik "sorosítás", tehát nem használunk tömböket vagy JSON objektumokat, csak egyszerű értékeket string kulccsal): &Filter.Genres=Sci-Fi&Filter.Genres=Action. Arra is figyelnünk kell, hogy az URL-ben a lapozó paraméterek is benne legyenek. Példa URL:/?PageSize=20&PageNumber=1&TitleSort=ReleaseYear&SortDescending=True&Filter.Genres=Comedy -
Kommentezd ki a műfajfelhő rész razor kódját.
-
A szűrő űrlap egy lehetséges megvalósítását a letöltött Pages mappában megtalálod (Index.filter.cshtml). Helyezd el úgy a saját oldaladba, hogy a kikommentezett rész helyén jelenjen meg. Ha ezt használod, ellenőrizd, hogy a razor kódban található modellhivatkozások a te saját modellednek megfelelő property nevekre hivatkoznak-e. Ha nem, írd át a hivatkozást megfelelő névre. A kód értelmezése ilyenkor a te feladatod, némi segítség található lentebb.
-
A szűrőfelület űrlapjának Genres részén lévő üres div-et töltsd ki egy hasonló ciklussal, mint ami a TitleTypes részen van, de itt a műfajokat listázd. Figyelj rá, hogy a
Filter.TitleTypeshelyett aFilter.Genres-t használd, a feliratok viszont a műfajok nevei legyenek, és továbbra is tartalmazzák a számosságokat.
Végső kinézet¶

Beadandó tesztesetek¶
- Legalább két darab, különbözőképpen felparaméterezett szűrés. Szövegesen szerepeljen a képeken a szűrés gomb megnyomása utáni teljes URL is.
Következő feladatok¶
Folytathatod a szerkesztő oldallal, ha még nem csináltad korábban.
Egyébként végeztél a feladatokkal.