-1
Those are my Viewdata on the controller:
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;
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());
}
As I do now in my View the foreac to scroll through it and fill my page. Below my View.
@{
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 ViewData["ListaUn"])
{
<li item-checked='false' item-expanded='false'>
@item.Unidade_Negocio
</li>
@*}*@
}
</ul>
</li>
}
_motivo = @item.Motivo;
}
</ul>
}
The thing is, on that line there’s a mistake in the guy:
@foreach (var un in (System.Collections.Generic.List<Ruptura.Models.MontaArvoreAcao>ViewData["ListaUn"]))
After all, what kind do I carry on the List?
That is the error:
Mensagem de Erro do Compilador: CS0305: O uso de tipo 'System.Collections.Generic.List<T>' genérico requer argumentos de tipo 1
In the search to make it work, I made this change and did not give any more error, but I do not bring anything else on my page, nor the Reason that was being loaded directly, without Viewdata or Viewbag. It used to work. My BD is properly populated, it is not registration fault. It is problem even. I did so: A include in the page and change in foreach.
my include:
@model IEnumerable<Ruptura.Models.MontaArvoreAcao>
my foreach:
@foreach (var un in (ViewData["ListaUn"] as IEnumerable<Ruptura.Models.MontaArvoreAcao>))
Do not enter the foreach. I put a break and saw that does not enter, it jumps straight.
So Miguel, this has been my question. What to put in the place of Unity as you put it. What kind, this is what led me to the post.
– pnet
Where I have the Unit is where you put your type of data from the list. It will be Presentation??
– CesarMiguel
I’ve made a few edits to show the progress I’ve been making, but I haven’t solved it yet.
– pnet