代码之家  ›  专栏  ›  技术社区  ›  Sergio Tapia

无法应用foreach?

  •  0
  • Sergio Tapia  · 技术社区  · 14 年前

    我正在尝试获取数据库中所有区域的列表:

    public ActionResult Index()
    {
        var carreras = repo.FindAllCarreras().ToList();
        AreaRepository area = new AreaRepository();
        ViewData["Areas"] = area.FindAllAreas(); //Return IQueryable<>
        return View("Index", carreras);
    }
    

    在视图中:

    <% foreach (var area in ViewData["Areas"])
           { %> 
               <p><%: area %></p>
        <% } %>
    

    foreach语句无法对“object”类型的变量进行操作,因为

    CarreraController 创建一个返回所有名称的linq查询并将其保存到一个简单的 List<string> .

    ViewData["Areas"] = area.FindAllAreas().Select(????
    
    2 回复  |  直到 11 年前
        1
  •  3
  •   Matt Greer    14 年前

    object o = ViewData["Areas"];
    foreach(var area in o)
    ...
    

    foreach(var area in (WhateverYourCollectionTypeIs)ViewData["Areas"])
    
        2
  •  0
  •   Rony    14 年前

    将ViewData[“区域”]转换为 (IEnumerable<AREATYPE>)ViewData["Areas"]