Foreach duplicando dados
Possuo 2 foreachs, para fazer uma busca de datas em ViewBags, onde eu retorno ambos em um select. Porém para cada item do primeiro foreach, ele faz um loop completo no segundo, assim duplicando os valores, por cada item do primeiro. Ex: Caso eu tenha 3 itens no primeiro foreach e 2 itens no segundo, meu resultado final será de 6 itens no meu select, sendo que ele repete dos dados, após o loo´dp primeiro. Meu problema é: Como fazer para não repetir esses dados?
Meus Foreahcs na view:
Minhas ViewBags:
Model:
Resultado Atual:
[img]http://arquivo.devmedia.com.br/forum/imagem/397347-20150202-111246.png[/img]
Meus Foreahcs na view:
<div class="col-md-9"> <select class="form-control" style="width:250px" id="selectPeriodo" name="sAquisitivo"> @foreach (var date in ViewBag.Ferias) { foreach (var fim in ViewBag.FimFerias) { <option> @Convert.ToDateTime(date).ToShortDateString() à @Convert.ToDateTime(fim).ToShortDateString() </option> } } </select> </div>
Minhas ViewBags:
ViewBag.Ferias = funcionarioFeriasRepository.Lista.Where(r => r.CdMatricula == matricula && r.SqContrato == contrato && r.DtInicioConcessao == null) .Select(x => x.DtInicioPeriodo).ToList(); ViewBag.FimFerias = funcionarioFeriasRepository.Lista.Where(r => r.CdMatricula == matricula && r.SqContrato == contrato && r.DtInicioConcessao == null) .Select(x => x.DtFimPeriodo).ToList();
Model:
[DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] public DateTime? dtInicioFerias { get; set; } [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] public DateTime? dtFimFerias { get; set; } public string sAquisitivo { get; set; }
Resultado Atual:
[img]http://arquivo.devmedia.com.br/forum/imagem/397347-20150202-111246.png[/img]
Randrade
Curtidas 0
Respostas
Randrade
02/02/2015
Mudando meu select na view, o problema foi resolvido.
<div class="col-md-9"> <select class="form-control" style="width:250px" id="selectPeriodo" name="sAquisitivo"> @for (int i = 0; i < ViewBag.Ferias.Count; i++) { var l = 0; while (l < 1) { <option> @Convert.ToDateTime(ViewBag.Ferias[i]).ToShortDateString() à @Convert.ToDateTime(ViewBag.FimFerias[i]).ToShortDateString() </option> l++; } } </select>
GOSTEI 0