Razor foreach lista jak wypisać

0

Witam,
przesyłam w kontrolerze:

List<string> listaWartosc = new List<string>();
listaWartosc .add("wartosc");
ViewData["lista"] = listaWartosc

Następnie w widoku próbuję odczytać listę.

    @{
        var i = 1;
        var  lista = ViewData["lista"];
        foreach (var item in lista)
        {
            <p> item </p>
        }
    }

Error brzmi: foreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator'

Zatem jak można wypisać listę danych? Prosze o pomoc.

2

   @{
        IEnumerable<string> lista = ViewData["lista"];
        foreach (var item in lista)
        {
            <p> item </p>
        }
    }

Poza tym czemu nie przekazujesz tego modelu do widoku?

1
 @{
    var lista = ViewData["lista"] as List<string>;
    foreach (var item in lista)
    {
        <p>@item </p>
    }
}
0

Dziękuję za pomoc, znalazłem tez sposób na rzutowanie (List<string>)lista.

Ulepszony kod dzięki sugestią @error91

//index.cshtml
     @{
        var mojaLista = Model.ZwrocListe();
        foreach (var item in mojaLista)
        {
            <p> @item.imie @item.nazwisko @item.wiek</p>
        }
    }
//Controler Home
                 int iloscKolumn = reader.FieldCount;
                while(reader.Read())
                {
                    for (int i = 0; i < iloscKolumn; i++)
                    {
                        wiersz[i] = reader[i].ToString();
                    }
                    pracownik.DodajDoListy(wiersz[1], wiersz[2], int.Parse(wiersz[3]));
                }
      }
                return View(pracownik);

1 użytkowników online, w tym zalogowanych: 0, gości: 1