Foreach sur ViewData MVC 4 Vue

Le problème que j'ai c'est que je suis de retour d'une seule photo, enregistrement à partir de ma base de données, qui fonctionne très bien dans les détails de mon point de vue. Toutefois, dans le contrôleur en vertu de détails, je suis également à la compilation d'une liste d'objet, de laquelle je veux afficher dans mon affichage des détails car il contient des photos supplémentaires qui lui sont associés. Donc, au bas de la vue, il devrait liste de chaque référencé nom de la photo. Je suis à l'aide de la Galleria.Io visionneuse de photos et je veux le brancher.

Quand je l'ai essayer et en boucle sur chaque élément dans la liste, je suis arriver:

{"Object reference not set to an instance of an object."}

Code

PhotosController

public ActionResult Details(int id = 0)
{
    Photos photos = db.FindPhotoById(id);
    if (photos == null)
    {
        return HttpNotFound();
    }

    List<Photos> photoList = GetImagesFromFilmID(8);

    ViewData["NumberOfImages"] = photoList.Count().ToString();
    ViewData["PhotoList"] = photoList;

    return View(photos);
}

public List<Photos> GetImagesFromFilmID(int filmID = 8 )
{

    List<Photos> photos;

    photos = (from p in db.Photos
              where p.PhotoDescription == "8"
              select p).Take(filmID).ToList();

    return photos;
}

Affichage Des Détails

@model TestingMVCQA.Models.Photos
@*@model IEnumerable<TestingMVCQA.Models.Photos>*@
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<fieldset>
<legend>Photos</legend>
<div class="display-label">
@Html.DisplayNameFor(model => model.PhotoName)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.PhotoName)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.PhotoDescription)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.PhotoDescription)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.PhotoFileName)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.PhotoFileName)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.ImageMimeType)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.ImageMimeType)
</div>
<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script>
<script src="@Url.Content("~/Scripts/galleria-1.3.6.js")"></script>
<style>
.galleria{ width: 900px; height: 500px; background: #000 }
</style>
@if (Model.PhotoFile != null) {
<div class="galleria">
<img src="@Url.Action("GetImage", "Photos", new { id = Model.PhotoID })" data-title="My title" data-description="My description" />
<img src="@Url.Action("GetImage", "Photos", new { id = 5 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 6 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 7 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 8 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 9 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 10 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 11 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 12 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 13 })" />
<img src="@Url.Action("GetImage", "Photos", new { id = 14 })" />
</div>
}
<script>
Galleria.loadTheme(src = "@Url.Content("~/Scripts/galleria.classic.js")");
Galleria.run('.galleria');
</script>
</fieldset>
<p>Your favorite fruit is:</p>@ViewData["NumberOfImages"]
<p>
@foreach (var item in ViewData["NumberOfImages"] as IEnumerable<TestingMVCQA.Models.Photos>)
{
}
</p>
<p>
@Html.ActionLink("Edit", "Edit", new { id=Model.PhotoID }) |
@Html.ActionLink("Back to List", "Index")
</p>

Dans la vue index j'ai:

@model IEnumerable<TestingMVCQA.Models.Photos>

Qui me permet d'utiliser le foreach et je comprends pourquoi, mais comme je suis de retour d'un seul objet dans la vue détails, je suis un peu coincé sur la façon de résoudre le problème. Donc, quand il est tout à travailler, je peut alors remplacer le GetImage appel et foreach sur l'image elle-même.

Si vous avez besoin de plus de code ou d'explication, puis laissez-moi savoir.

ur ViewData["NumberOfImages"] comte de photolist juste transtypage pour les entiers...
avez-vous essayé de l'initialisation de cet extérieur de la méthode List<Photos> photoList quelque chose de " Liste<Photos> photoList = new List<Photos>();
la question u ont affiché est de la mauvaise utilisation ViewData["liste photos"] dans la boucle foreach...
Dans la boucle foreach que dois-je écrire pour afficher le nom de fichier à afficher.

OriginalL'auteur user2672720 | 2014-07-27