怎样在前台把这个Dictionary>遍历出来?

中文命名法 2016-09-12 12:14:19
控制器里已经传递:
public ActionResult 列表()
{
var 选择项 = new Dictionary<string, List<选择项>>();
选择项.Add("客户", 库.选择项.Where(w => w.类别 == "客户").OrderBy(o => o.名称).ToList());
选择项.Add("报关行", 库.选择项.Where(w => w.类别 == "报关行").OrderBy(o => o.名称).ToList());
选择项.Add("车队", 库.选择项.Where(w => w.类别 == "车队").OrderBy(o => o.名称).ToList());
ViewData["选择项"] = 选择项;
return View(库.业务纪录.OrderByDescending(o => o.编号).Take(50));
}

前台怎样才能分别把“客户”,“报关行”,“车队”的List<选择项>遍历出来?请贴个代码看看,试了好几次没成功。
...全文
523 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨雾星天 2016-09-16
  • 打赏
  • 举报
回复

foreach(var item in ViewBag.选择项.Values)
{
        
        foreach(var selected in item)
        {
          // List的内容
        }
}
yang1216 2016-09-12
  • 打赏
  • 举报
回复
引用 1 楼 yang1216 的回复:
Dictionary<string, List<选择项>> xxx=ViewData["选择项"] as ViewData["选择项"]; foreach(var x in xxx) { }
写错了 Dictionary<string, List<选择项>> xxx=ViewData["选择项"] as Dictionary<string, List<选择项>>;
yang1216 2016-09-12
  • 打赏
  • 举报
回复
Dictionary<string, List<选择项>> xxx=ViewData["选择项"] as ViewData["选择项"]; foreach(var x in xxx) { }
中文命名法 2016-09-12
  • 打赏
  • 举报
回复
引用 1 楼 yang1216 的回复:
Dictionary<string, List<选择项>> xxx=ViewData["选择项"] as ViewData["选择项"]; foreach(var x in xxx) { }
我如果把viewdata改成viewbag,一切都好了。
        public ActionResult 列表()
        {
            var 选择项 = new Dictionary<string, List<选择项>>();
            选择项.Add("客户", 库.选择项.Where(w => w.类别 == "客户").OrderBy(o => o.名称).ToList());
            选择项.Add("报关行", 库.选择项.Where(w => w.类别 == "报关行").OrderBy(o => o.名称).ToList());
            选择项.Add("车队", 库.选择项.Where(w => w.类别 == "车队").OrderBy(o => o.名称).ToList());
            ViewBag.选择项 = 选择项;
            return View(库.业务纪录.OrderByDescending(o => o.编号).Take(50));
        }
@foreach (var 成员 in ViewBag.选择项["客户"]) { <li><a href="#">@成员.名称</a></li> } 但是看到很多帖子都说viewdata速度比viewbag快,所以想学一下,但是改造失败。。
中文命名法 2016-09-12
  • 打赏
  • 举报
回复
引用 2 楼 yang1216 的回复:
[quote=引用 1 楼 yang1216 的回复:] Dictionary<string, List<选择项>> xxx=ViewData["选择项"] as ViewData["选择项"]; foreach(var x in xxx) { }
写错了 Dictionary<string, List<选择项>> xxx=ViewData["选择项"] as Dictionary<string, List<选择项>>;[/quote] 谢谢,但不是把整个 Dictionary 遍历出来,而是分别把“客户”,“报关行”,“车队”的List<选择项>遍历出来,我之前用的这个语法,但是不对: @foreach (var 成员 in ViewData["选择项"]["客户"] as Dictionary<List<选择项>>) { <li><a href="#">@成员.名称</a></li> }

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧