Załóżmy, że masz listę osób A i listę osób B na stronie. A te dwa są osobnymi klasami w L2S, reprezentującymi dwie różne tabele. Dlatego nie można przekazać jednego modelu w następujący sposób:C# model mvc vs viewbag
...
@model PeopleA
...
@foreach(var peopleA in Model.People) ...
@foreach(var peopleB in //what?)
W związku z powyższym, mam trzy opcje do naśladowania.
- Pierwszym z nich jest podzielenie strony na częściowe widoki, dzięki czemu mogę przekazać model przez pomocnika
RenderAction
. Ponieważ wykorzystam te widoki częściowe tylko wtedy, gdy opcja ta nie będzie dla mnie atrakcyjna. - Druga opcja to użycie ViewBags, którego nie chcę, ponieważ wolę mocno wpisane modele.
- Ten ostatni, w końcu, co miałem do wykorzystania, ale chciałem zapytać, zanim ten sposób jest stworzenie modelu jak:
ModelMyPage.cs
public List<PeopleA> peopleA { get; set; }
public List<PeopleB> peopleB { get; set; }
MyController. cs
...
ModelMyPage m = new ModelMyPage();
m.peopleA = // query
m.peopleB = // another query
return(m);
I masz pomysł. Czy jest to ważny sposób na wykonanie mojego zadania lub czy istnieje lepszy sposób na zrobienie tego, co chcę?