在我的MVC应用程序:
在控制器I创建的动态型,其被存储在会话的列表。 视图然后试图访问的对象,但它会引发异常: 'object' does not contain a definition for 'a'
编码 :
// Controller
List<dynamic> myLists = new List<dynamic>();
for(int i=0; i<3; i++){
var ano = new { a='a' , b = i };
myLists.Add(ano);
}
Session["rows"] = myLists;
在我看来
// My View
foreach( dynamic row in (Session["rows"] as List<dynamic>)){
<div>@row</div> // output {a:'a', b :1}
<div>@row.a</div> // throw the error.
}
注意
- 在调试的时候,在腕表视图我可以看到的属性/值
- 我不能在ViewBag列表存储在我的情况,因为我用AJAX调用该方法
- 我试图使用
var
,object
,而不是dynamic
=>相同的结果 - 我认为这是不相关的MVC或
Razor engine
- 我试图用一个ASPX视图(未剃刀一个)和相同的结果
为什么我不能访问属性,如果调试器可以看到它,我怎么能解决这个问题?