代码之家  ›  专栏  ›  技术社区  ›  RayLoveless

asp.net mvc。通过viewData传递列表

  •  8
  • RayLoveless  · 技术社区  · 14 年前

    嗨,有人知道如何通过“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 年前
        1
  •  15
  •   Daniel A. White    14 年前

    对于这一行:

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

    把它改成

    var galList = ViewData["SomeList"] as List<myNS.CM.AVDTalentApplication.Models.GalleryModel>;
    
        2
  •  1
  •   Nasir    14 年前

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

    <% var galList = (List<myNS.CM.AVDTalentApplication.Models.GalleryModel>) ViewData["SomeList"];  %>
    
        3
  •  0
  •   Justin Niessner    14 年前

    必须显式将对象从ViewData集合中转换为需要与之交互的类型:

    <%@ Import Namespace="myNS.CM.AVDTalentApplication.Models" %>
    
    <% foreach(var gal in (List<GalleryModel>) ViewData["SomeList"]) %>
    <% { %>
        <%= gal.uri %>
    <% } %>
    
        4
  •  0
  •   Cœur Gustavo Armenta    6 年前

    尽管以上的答案都是正确的,我还是强烈建议利用 view models