c#字典字符串对象按键获取值

c#字典字符串对象按键获取值,c#,asp.net-mvc,asp.net-mvc-4,dictionary,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Dictionary,Razor,我正在使用C#asp.NETMVC4,我正在制作一个字典,以便在test.cshtml中发送和显示 我是c#新手,在cshtml页面中转换对象值字典时遇到问题 这是我的对象类,我使用viewbag发送它: Dictionary<string, User> dic = new Dictionary<string, User>(); dic.Add("1", new User { ID_Task = "task1", Agent = "shasapo" }); dic.Add

我正在使用C#asp.NETMVC4,我正在制作一个字典,以便在test.cshtml中发送和显示 我是c#新手,在cshtml页面中转换对象值字典时遇到问题

这是我的对象类,我使用viewbag发送它:

Dictionary<string, User> dic = new Dictionary<string, User>();
dic.Add("1", new User { ID_Task = "task1", Agent = "shasapo" });
dic.Add("2", new User { ID_Task = "task2", Agent = "fania" });
dic.Add("3", new User { ID_Task = "task3", Agent = "andre" });
ViewBag.taskDetailVehicle = dic;
但这段代码给了我一个错误:“如果不先将lambda表达式强制转换为委托或表达式树类型,就不能将其用作动态调度操作的参数”

然后我尝试其他方法:

@if (ViewBag.taskDetailVehicle.ContainsKey("3"))
    {
      User test1 = ViewBag.taskDetailVehicle["3"];
      <p>test1.ID_Task <br/> test1.Agent </p>
    }
@if(ViewBag.taskDetailVehicle.ContainsKey(“3”))
{
用户test1=ViewBag.taskDetailVehicle[“3”];
test1.ID_任务
test1.Agent

}
但它是返回空的


请帮帮我,有没有办法通过键获取值?

ViewBag
是一个
动态对象,它在编译时没有特定的类型。您需要将动态对象强制转换为字典:

var dictionary = ViewBag.taskDetailVehicle as Dictionary<string, User>;
User test1=((字典)ViewBag.taskDetailVehicle)。其中(..
var dictionary = ViewBag.taskDetailVehicle as Dictionary<string, User>;
@if (ViewBag.taskDetailVehicle.ContainsKey("3"))
{
    User test1 = dictionary["3"];
}