ASP.NET - Varios modelos a un View

   
Vista:

Varios modelos a un View

Publicado por fernando (2 intervenciones) el 24/07/2017 22:02:28
Estimados, espero puedan ayudarme con mi problema..

Les cuento que estoy trabajando con MVC y soy nuevo trabajando con .net. El tema es que estoy tratando de enviar datos de la base de datos a la vista index() enviando el modelo con los datos a través del homeController (Hasta acá todo bien), pero se me complica cuando quiero enviar mas de una tabla ya que solo me permite enviar un modelo a la vista, por lo que leyendo por ahí encontré una solución con el modelo dinámico y creando una clase que contenga dos clases.
1
2
3
4
5
6
7
-------------------EventoTipoEvento.cs---------------
 public class ClassEventoTipoEvento
    {
            public List<Evento> Evento { get; set; }
            public List<TipoEvento> TipoEvento { get; set; }
 
    }

1
2
3
4
5
6
7
8
-------------------------HomeController.cs---------------
public IActionResult Index()
        {
            dynamic model = new ExpandoObject();
            model.Evento = db.Evento.ToList();
            model.TipoEvento = db.TipoEvento.ToList();
            return View(model);
        }


1
2
3
4
5
6
7
8
9
-----------------INDEX.CSHTML---------------------------
@model dynamic
.
.
  @foreach (var kvp in Model.Evento)
                        {
                          <tr><th>@kvp.Id</th><th>@kvp.Estado</th></tr>
 
                        }

De esta forma efectivamente puedo trabajar con los dos modelos (Evento y TipoEvento). Pero solo puedo imprimir toda la lista y desconozco como trabajar con los filtros ya que por cada evento tengo un atributo de tipo de evento que debe buscar con ese atributo el tipo en la tabla TipoEvento(Es decir Evento.TipoEvento = TipoEvento.Id pero debo rescatar la información del Tipo de la tabla tipoEvento) :

1
2
3
4
5
6
7
8
9
10
11
-----------TablaEvento-------
    [Id] INT NOT NULL,
    [Estado] NCHAR(100) NULL,
    TipoEvento INT
   PRIMARY KEY (Id)
 
--------------TablaTipoEvento----------
    [Id] INT NOT NULL,
    [Tipo] nchar(50) NULL,
    PRIMARY KEY (Id),
    FOREIGN KEY (TipoEvento) REFERENCES TipoEvento(Id),

Basicamente quiero que aca pueda imprimir en una columna la informacion que me falta
1
2
3
4
5
@foreach (var kvp in Model.Evento)
                        {
                          <tr><th>@kvp.Id</th><th>@kvp.Estado</th><th>InformacionFaltante</th></tr>
 
                        }

Esperando sus comentarios me despido y les agradezco de antemano.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder