Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

155
Vistas
Modelos múltiples de MVC en una sola vista

Quiero llegar a varios modelos en una sola vista. Tengo carpeta DAL y DbContext.

 class CvContext : DbContext { public CvContext() : base("CvContext") { } public DbSet<LinkModel> Links { get; set; } public DbSet<AboutModel> Abouts { get; set; } public DbSet<PortfolioModel> Portfolios { get; set; } public DbSet<SkillModel> Skills { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } }

Y HomeController

 public class HomeController : Controller { private CvContext db = new CvContext(); public ActionResult Index() { return View(db.Links.ToList()); } }

Índice.cshtml

 @model IEnumerable<MvcCv.Models.LinkModel> <ul> @foreach (var item in Model) { <li> <a href="@Html.DisplayFor(modelItem => item.LinkUrl)"> @Html.DisplayFor(modelItem => item.LinkName) <span class="icon"></span> <span class="menu-icon"> <img src="@Url.Content(item.LinkImage)" alt="" /> </span> </a> </li> } </ul>

¿Cómo puedo llegar a todos los modelos? Usaré foreach para elementos en Modelo como Enlaces. Gracias.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe crear un modelo de vista de la siguiente manera:

 public class FooViewModel { public IEnumerable<LinkModel> Links { get; set; } public IEnumerable<AboutModel> Abouts { get; set; } public IEnumerable<PortfolioModel> Portfolios { get; set; } public IEnumerable<SkillModel> Skills { get; set; } }

Luego, desde su controlador, complételos según sus requisitos, como ejemplo:

 public ActionResult Index() { var model = new FooViewModel(); model.Links = db.Links.ToList(); model.Abouts = db.Abouts.ToList(); model.Portfolios = db.Portfolios.ToList(); model.Skills = db.Skills.ToList(); return View(model); }

Luego cambie el modelo en su vista a FooViewModel y todas sus propiedades estarán disponibles allí.

 @model FooViewModel <ul> @foreach (var item in Model.Links) { <li> @item </li> } </ul> <ul> @foreach (var item in Model.Links) { <li> @item </li> } </ul> // ....etc, obviously change the outputs as needed.
over 4 years ago · Santiago Trujillo Denunciar

0

//suppose you have two Models public class student { public int Id public string Name{get;set;} } public class class { public int Id public string Name{get;set;} } // Now combine these two class Model in single Model for example: public class Mixmodel { public Student student {get;set;} public Class class {get;set;} } //here is the Home controller of the Index view @model projectName.MixModel @foreach(var item in Model.class) { @html.displayfor(item.class.Name) } @foreach(var item in Model.student) { @html.displayfor(item.student.Name) }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda