Asp-net在视图文件中打印Dictionary值



我正试图从字典中按键打印一个值,但我不知道应该如何打印。我给控制器写了这样的信:

var a = new Dictionary<string, string>();
a["b"] = "s";
ViewData["a"] = a;

和在视图文件:

<h1><%= ((Dictionary<string, string>) ViewData["a"])["b"] %></h1>

或者同样如此:

<h1>@a["b"]</h1>

在第一种情况下,我得到的是:"<%:((Dictionary)ViewData["a"])["b"]%>"。第二个是NullReferenceException。

我一直在努力寻找解决方案,但一直以来,我只能通过foreach循环找到解决方案。

谢谢你的帮助!

为了避免在视图文件中转换为dictionary,您可以使用ViewBag访问相同的数据:

<h1>@ViewBag.a["b"]</h1>

或者,如果你想使用ViewData,你可以使用这样的代码:

<h1>@((ViewData["a"] as Dictionary<string,string>)["b"])</h1>

最新更新