Supongamos que tiene una lista de personas A y una lista de personas B en una página. Y estos dos son clases separadas en L2S, que representan dos tablas diferentes. Por lo tanto, no puede pasar un solo modelo de la siguiente manera:C# mvc model vs viewbag
...
@model PeopleA
...
@foreach(var peopleA in Model.People) ...
@foreach(var peopleB in //what?)
En consecuencia, supongo, tengo tres opciones a seguir.
- El primero es dividir la página en vistas parciales para poder pasar un modelo a través del asistente
RenderAction
. Como usaré estas vistas parciales solo una vez, esta opción no me parece atractiva. - La segunda opción sería usar ViewBags que no quiero, ya que prefiero los modelos fuertemente tipados.
- La última, por último, que estaba a punto de usar, pero quería preguntar antes de hacerlo, es la creación de un modelo como el siguiente:
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);
Y usted tiene la idea. ¿Es esta la manera válida de llevar a cabo mi tarea o hay una mejor manera C# para hacer lo que quiero?