Como eu faço um foreach em cima de uma ViewData na View.
22/09/2014
0
public ActionResult Acao() { RupturaEntities db = new RupturaEntities(); var _listaUnidade = Enumerable.Empty<object>(); var _listaFamilia = Enumerable.Empty<object>(); var _listaProduto = Enumerable.Empty<object>(); var _listaCnpjDesc = Enumerable.Empty<object>(); var monta_arvore = db.Ruptura .Where(m => m.IDMotivo != 7) .Select(rup => new MontaArvoreAcao { IDRuptura = rup.IDRuptura, DataRuptura = rup.DataRuptura, IDMotivo = rup.IDMotivo, Motivo = rup.Motivo.Motivo1, IDOrigem = rup.IDOrigem, CodigoPDV = rup.CodigoPDV, UF = rup.PDV.UF, Cidade = rup.PDV.Cidade, CnpjDescricao = rup.PDV.Cnpj + " - " + rup.PDV.Descricao, Codigo_Apresentacao = rup.Codigo_Apresentacao, Unidade_Negocio = rup.Apresentacao.Unidade_Negocio, Codigo_Unidade_Negocio = rup.Apresentacao.Codigo_Unidade_Negocio, Franquia = rup.Apresentacao.Franquia, Familia = rup.Apresentacao.Familia, Descricao = rup.Apresentacao.Descricao }).ToList().OrderBy(r => r.IDMotivo); foreach (var _idmotivo in monta_arvore) { _listaUnidade = db.Apresentacao .Where(un => un.Codigo_Unidade_Negocio == _idmotivo.Codigo_Unidade_Negocio) .Select(u => new MontaArvoreAcao { Unidade_Negocio = u.Unidade_Negocio, Codigo_Familia = u.Codigo_Familia }).ToList().OrderBy(o => o.Unidade_Negocio); } ViewData["ListaUn"] = _listaUnidade.ToList(); foreach(var _idUn in monta_arvore) { _listaFamilia = db.Apresentacao .Where(f => f.Codigo_Familia == _idUn.Codigo_Familia) .Select(f => new MontaArvoreAcao { Familia = f.Familia, Codigo_Familia = f.Codigo_Familia }).ToList(); } ViewData["ListaFam"] = _listaFamilia; foreach(var _prod in monta_arvore) { _listaProduto = db.Apresentacao .Where(p => p.Codigo_Apresentacao == _prod.Codigo_Apresentacao) .Select(prod => new MontaArvoreAcao { Descricao = _prod.Descricao, Codigo_Apresentacao = _prod.Codigo_Apresentacao }).ToList(); } ViewData["ListaProd"] = _listaProduto; foreach(var cnpj in monta_arvore) { _listaCnpjDesc = db.PDV .Where(c => c.CodigoPDV == cnpj.CodigoPDV) .Select(x => new MontaArvoreAcao { CnpjDescricao = x.Cnpj + " - " + x.Descricao }).ToList(); } return View(monta_arvore.ToList()); } [HttpPost] public JsonResult CarregaCidades(string _uf) { RupturaEntities db = new RupturaEntities(); var resultado = (from _pdv in db.PDV .Where(c => c.UF == _uf) select new { _pdv.Cidade }).ToList().Distinct().OrderBy(o => o.Cidade); return Json(new { resultado }, JsonRequestBehavior.AllowGet); }
Essa é minha View onde quero o foreach
<div id='jqxWidget'> <div style='float: left; width:auto;'> <div id='jqxTree' style='visibility: hidden; float: left; margin-left: 20px;'> @{ var _motivo = ""; var _un = ViewData["ListaUn"]; var _familia = ""; var _desc = ""; var _apr = ""; int _idmotivo = 0; <ul> @foreach (var item in Model) { if (_motivo != @item.Motivo) { _idmotivo = @item.IDMotivo; <li item-checked='false' item-expanded='false'> @item.Motivo <ul> @foreach (var un in (System.Collections.Generic.List<Ruptura.Models.MontaArvoreAcao>ViewData["ListaUn"])) { <li item-checked='false' item-expanded='false'> @un.Unidade_Negocio </li> } </ul> </li> } _motivo = @item.Motivo; } </ul> } </div> <div style='margin-left: 60px; float: left;'> <div style='margin-top: 10px;'> <input id='jqxCheckBox' type="hidden"> </div> </div> </div> </div>
O que passa é que nessa linha dá erro no tipo:
@foreach (var un in (System.Collections.Generic.List<Ruptura.Models.MontaArvoreAcao>ViewData["ListaUn"]))
Afinal, qual o tipo que eu carrego no List?
Pjava
Posts
22/09/2014
Pjava
Mensagem de Erro do Compilador: CS0305: O uso de tipo 'System.Collections.Generic.List<T>' genérico requer argumentos de tipo 1
22/09/2014
Pjava
meu include:
@model IEnumerable<Ruptura.Models.MontaArvoreAcao>
meu foreach:
@foreach (var un in (ViewData["ListaUn"] as IEnumerable<Ruptura.Models.MontaArvoreAcao>))
22/09/2014
Pjava
Clique aqui para fazer login e interagir na Comunidade :)