如何在MVC4中获取TempData对象识别

时间:2013-04-09 17:10:07

标签: c# asp.net-mvc-4

我有一个创建TempData对象的ActionMethod

TempData["Message"] = new Message {Text = txtMessage, Success = false};

然后我在视图中读取TempData,如

@{var message = TempData["Message"];}

但是当我尝试使用var" message.Success"编译器不识别该属性。当我在调试期间观察var消息和TempData时,我可以看到Object的txtMessage和Success值。我错过了什么?

2 个答案:

答案 0 :(得分:3)

尝试

@{dynamic message = TempData["Message"];}

@{Message message = TempData["Message"] as Message;}

或者,如果你知道它只会是一个消息

@{Message message = (Message)TempData["Message"];}

答案 1 :(得分:1)

我不相信TempData是动态类型的,所以你需要强制转换它。但是,对于匿名类型,您不能这样做。您需要将匿名类型转换为实际类。

如果您不想这样做,您可以使用ViewBag来代替,这是动态输入的。