嗨,有没有人知道如何通过“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%>
<%} %>
对于这一行:
List<myNS.CM.AVDTalentApplication.Models.GalleryModel> galList = ViewData["SomeList"];
改为
var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>;
您必须将对象显式地转换为ViewData集合,作为您需要与之交互的类型:
<%@ Import Namespace="myNS.CM.AVDTalentApplication.Models" %>
<% foreach(var gal in (List<GalleryModel>) ViewData["SomeList"]) %>
<% { %>
<%= gal.uri %>
<% } %>
您需要在视图中强制转换它:
<% var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>; %>
要么
<% var galList = (List<myNS.CM.AVDTalentApplication.Models.GalleryModel>) ViewData["SomeList"]; %>
即使以上所有答案都是正确的,我强烈建议使用view models。