2013-04-13 14 views
8

Chciałbym wyświetlić wszystkie moje zdjęcia w folderze folder "Images_uploads" w widoku MVC. Więc jego wyświetlanie na stronie. Ale nic nie działa.Wyświetl wszystkie obrazy w folderze w MVC. Z foreach

{ 

<form method="post" action="/Images_upload" enctype="multipart/form-data"> 
    <input name="ImageUploaded" type="file"> 
    <input type="submit"> 
</form> 

<List<String> li = ViewData["~/images_upload"] as List<String>; 
foreach (var picture in li) 

    <img src = '@Url.Content("~/images_upload" + picture)' alt="Hejsan" /> 

} 
+0

jakie jest pytanie? –

+0

Jeśli mogę pokazać wszystkie moje zdjęcia w folderze, a następnie wyświetlić je w widoku. –

Odpowiedz

20

Powinieneś prawdopodobnie robić takie rzeczy w kontrolerze. Użyj EnumerateFiles aby uzyskać listę wszystkich plików w folderze:

// controller 
public ActionResult MyAction() 
{ 
    ... 
    ViewBag.Images = Directory.EnumerateFiles(Server.MapPath("~/images_upload")) 
           .Select(fn => "~/images_upload/" + Path.GetFileName(fn)); 

    return View(...); 
} 

// view 
@foreach(var image in (IEnumerable<string>)ViewBag.Images)) 
{ 
    <img src="@Url.Content(image)" alt="Hejsan" /> 
} 

Jeszcze lepiej, korzystać z silnie wpisany widoku modelu, na przykład:

// model 
class MyViewModel 
{ 
    public IEnumerable<string> Images { get; set; } 
} 

// controller 
public ActionResult MyAction() 
{ 
    var model = new MyViewModel() 
    { 
     Images = Directory.EnumerateFiles(Server.MapPath("~/images_upload")) 
          .Select(fn => "~/images_upload/" + Path.GetFileName(fn)) 
    }; 
    return View(model); 
} 
// view 
@foreach(var image in Model.Images) 
{ 
    <img src="@Url.Content(image)" alt="Hejsan" /> 
} 
+2

można również zrobić 'Obrazy = Directory.EnumerateFiles (Server.MapPath (" ~/images_upload ")) .Wybierz (f ​​=>" ~/images_upload/"+ f);' i usuń część "~/images_upload" z widok, aby utrzymać ścieżkę w jednym miejscu. – corrego

+0

Dziękuję bardzo p.s.w.q, Teraz na moje drugie pytanie, dostaję błąd, gdy próbuję załadować zdjęcie. –

+0

p.s. g.g Otrzymuję odwołanie do obiektu nie ustawione na instancję obiektu. Na @foreach ... –

Powiązane problemy