MVC 5 routing i Partial Views

0

Cześć, mam taki problem. Mam prostą bazę danych z informacjami o produktach. Każdy produkt ma swoją kategorię. Chcę wyświetlać produkty i listę kategorii do wyboru. W metodzie indeks używam jako modelu Listę produktów. Wyświetlam każdy produkt, wyciągam informacje o wszystkich możliwych kategoriach i też je wyświetlam. W ten sposób wyciągam informacje o kategoriach. (to wewnątrz widoku)

@{
                List<string> categories = new List<string>();
                foreach (var item in Model)
                {
                    if (!categories.Contains(item.Category))
                    {
                        categories.Add(item.Category);
                    }
                }

                foreach (var item in categories)
                {
                    <p>@item</p>
                    @Html.ActionLink(@item, "Index", "Product",new {category = @item},null)
                }
            }
 

Gdy wybiorę jakąś kategorię to wyświetlają mi się tylko produkty z danej kategorii i co za tym idzie w części w której wyświetlić powinny się wszystkie kategorie dostaję tylko jedną, aktualnie wybraną kategorię. To jest w sumie logiczne. Chciałbym zrobić tak by w moim widoku Index zrobić w części odpowiedzialnej za wyświetlanie kategorii widok częściowy któremu odpowiada akcja w kontrolerze, ale nie wiem jak. Gdzieś wyczytałem że takie akcje mają sens jedynie w przypadku używania ajaxa. Inne rozwiązanie które przychodzi mi do głowy to zrobienie osobnej klasy dla mojego modelu w którym będzie i lista produktów i lista kategorii. Jakie rozwiązanie jest najlepsze? Czy to z widokiem częściowym ma sens?
Pozdrawiam.

0
Nie mam konta napisał(a):

widok częściowy któremu odpowiada akcja w kontrolerze

Chcesz zrobić partiala, który będzie wyświetlał listę kategorii, tak? Bo nie do końca rozumiem problem.
Jak chcesz wyświetlać listę kategorii, to możesz zrobić to w widoku częściowym, możesz też w layoucie, do którego podpinasz widok.
Jak chcesz to zrobić w partialu, to spokojnie możesz zrobić model z listą kategorii i później wyświetlać te kategorie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1