asp.net mvc.Передача списка через viewData - PullRequest
8 голосов
/ 08 ноября 2010

Привет, кто-нибудь знает, как передать список через «ViewData». Это то, что я пытаюсь, но я думаю, что я пропускаю актерский состав где-то.

List<GalleryModel> galleryList = new List<GalleryModel>();
        galleryList.Add(new GalleryModel() { isApproved = true, uri = "www.cnn1.com" });
        galleryList.Add(new GalleryModel() { isApproved = true, uri = "www.cnn2.com" });

        ViewData["SomeList"] = galleryList;

вот мой код страницы aspx:

 <% List<myNS.CM.AVDTalentApplication.Models.GalleryModel> galList = ViewData["SomeList"];  %>
<% foreach (var gal in galList) { %>
<%= gal.uri%>
<%} %>

Ответы [ 4 ]

14 голосов
/ 08 ноября 2010

Для этой строки:

List<myNS.CM.AVDTalentApplication.Models.GalleryModel> galList = ViewData["SomeList"];

изменить на

var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>;
0 голосов
/ 08 ноября 2010

Даже если все вышеприведенные ответы верны, я настоятельно рекомендую использовать просмотр моделей .

0 голосов
/ 08 ноября 2010

Вам нужно привести его в ракурс:

<% var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>;  %>

или

<% var galList = (List<myNS.CM.AVDTalentApplication.Models.GalleryModel>) ViewData["SomeList"];  %>
0 голосов
/ 08 ноября 2010

Вы должны явно привести объект из коллекции ViewData к типу, с которым вам нужно взаимодействовать:

<%@ Import Namespace="myNS.CM.AVDTalentApplication.Models" %>

<% foreach(var gal in (List<GalleryModel>) ViewData["SomeList"]) %>
<% { %>
    <%= gal.uri %>
<% } %>
...