在MVC RC2中,我返回一个匿名对象类型&我想在强类型视图中访问它。 让我们说在控制器中我查询数据库&在 var 类型&中获取值我想将它传递给强类型视图。如何在该视图中访问它?
答案 0 :(得分:1)
你总是可以使用反射来挖掘属性并以这种方式访问它们,但除此之外,没有办法解决它。
var q = new { MyProperty = "Hello World" };
var t = q.GetType();
var hello = t.GetProperty("MyProperty").GetValue(q, null) as string;
Console.WriteLine(hello);
如果您需要访问该类型,您应该创建一个用户定义的对象/类型,可以通过名称来识别。
答案 1 :(得分:1)
您无法将其传递给强类型视图,但您可以将其转换为字典并以此方式访问属性。
作为System.Web.Routing的一部分,有一个名为“RouteValueDictionary”的新对象,它可以将构造函数作为匿名对象。
MVC团队在他们的许多助手中使用了这个。
示例:
IDictionary<string, object> myDict = new RouteValueDictionary(anonymousObject);