Foreach duplicando dados

.NET

02/02/2015

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:

<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

Randrade

Curtidas 0

Respostas

Randrade

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
POSTAR