12

こんにちは、「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

4 に答える 4

17

この行の場合:

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

に変更します

var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>;
于 2010-11-08T16:59:56.520 に答える
2

ビューでキャストする必要があります。

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

また

<% var galList = (List<myNS.CM.AVDTalentApplication.Models.GalleryModel>) ViewData["SomeList"];  %>
于 2010-11-08T17:00:41.577 に答える
0

上記の回答はすべて正しいですが、ビュー モデルを使用することを強くお勧めします。

于 2010-11-08T17:09:47.050 に答える
0

対話する必要がある型として、ViewData コレクションからオブジェクトを明示的にキャストする必要があります。

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

<% foreach(var gal in (List<GalleryModel>) ViewData["SomeList"]) %>
<% { %>
    <%= gal.uri %>
<% } %>
于 2010-11-08T16:59:32.200 に答える