Inquiridor
View com 2 tipo

Pergunta
-
Todas as Respostas
-
Você pode fazer um FACADE:
Assim:
Classes que serão utilizados no Modelo
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebMVCExemplos.Models { public class Pessoas { public int Id { get; set; } public string Nome { get; set; } } public class Automovel { public int Id { get; set; } public string Descricao { get; set; } public int Ano { get; set; } } public class Listas { public Pessoas Pessoa { get; set; } public Automovel Automovel { get; set; } } }
Chamando elas no Controller
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using WebMVCExemplos.Models; namespace WebMVCExemplos.Controllers { public class ListaController : Controller { // // GET: /Lista/ public ActionResult Index() { Pessoas Pessoa = new Pessoas() { Id = 1, Nome = "Pessoa 1" }; Automovel Automovel = new Automovel() { Id = 1, Descricao = "Fusca", Ano = 1995 }; Listas Lista = new Listas(); Lista.Pessoa = Pessoa; Lista.Automovel = Automovel; return View(Lista); } } }
Sua View vai ser tipado como Listas
@model WebMVCExemplos.Models.Listas @{ ViewBag.Title = "Index"; WebMVCExemplos.Models.Pessoas Pessoas = Model.Pessoa; WebMVCExemplos.Models.Automovel Automovel = Model.Automovel; } <h2>Index</h2> <div> <h4>Listas</h4> <hr /> <div class="dl-horizontal"> <div>@string.Format("{0} - {1}", Pessoas.Id, Pessoas.Nome)</div> <div>@string.Format("{0} - {1} - {2}", Automovel.Id, Automovel.Descricao, Automovel.Ano)</div> </div> </div>
Mas, pode ser tornar inconveniente se isso for uma prática em todos os seus Controller pela parte performática da coisa ...
A ViewBag ou ViewData são facilmentes tipadas na View ... !!!
Assim (Obs: Seguindo as mesmas classes do exemplo acima)
public ActionResult Index2() { Pessoas Pessoa = new Pessoas() { Id = 1, Nome = "Pessoa 1" }; Automovel Automovel = new Automovel() { Id = 1, Descricao = "Fusca", Ano = 1995 }; ViewBag.Pessoa = Pessoa; ViewBag.Automovel = Automovel; return View(); }
Perceba que a Index2 não tem nem model padrão!!!
View dessa Index2
@{ ViewBag.Title = "Index2"; WebMVCExemplos.Models.Pessoas Pessoas = (WebMVCExemplos.Models.Pessoas)ViewBag.Pessoa; WebMVCExemplos.Models.Automovel Automovel = (WebMVCExemplos.Models.Automovel)ViewBag.Automovel; } <h2>Index2</h2> <div> <h4>Listas</h4> <hr /> <div class="dl-horizontal"> <div>@string.Format("{0} - {1}", Pessoas.Id, Pessoas.Nome)</div> <div>@string.Format("{0} - {1} - {2}", Automovel.Id, Automovel.Descricao, Automovel.Ano)</div> </div> </div>
OK!
- Sugerido como Resposta welington jrModerator segunda-feira, 2 de dezembro de 2013 13:35
-
Concordo com o Fúlvio, porem, para o meu sistema eu achei mais conveniente fazer a utilização de Views Parciais(PartialView).
http://imasters.com.br/artigo/24124/dotnet/asp-net-mvc-3-apresentando-partial-views/
http://stackoverflow.com/questions/13934671/using-partial-views-in-asp-net-mvc-4
Espero que ajude.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs
-
Concordo com o Fúlvio, porem, para o meu sistema eu achei mais conveniente fazer a utilização de Views Parciais(PartialView).
http://imasters.com.br/artigo/24124/dotnet/asp-net-mvc-3-apresentando-partial-views/
http://stackoverflow.com/questions/13934671/using-partial-views-in-asp-net-mvc-4
Espero que ajude.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs