2

我有一个创建 TempData 对象的 ActionMethod

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

然后我在视图中读取了 TempData

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

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

4

2 回答 2

3

尝试

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

或者

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

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

@{Message message = (Message)TempData["Message"];}
于 2013-04-09T17:14:24.600 回答
1

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

如果您不想这样做,则可以使用ViewBag动态类型的替代方法。

于 2013-04-09T17:12:37.810 回答