私のMVCアプリケーションでは:
コントローラで、セッションに保存される動的タイプのリストを作成しました。次に、ビューはオブジェクトにアクセスしようとしますが、例外がスローされます。'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.
}
ノート
- デバッグ時に、ウォッチビューでプロパティ/値を確認できます
- 私の場合、ajaxを使用してメソッドを呼び出したため、リストをViewBagに保存できません。
- =>同じ結果の
var
代わりobject
にを使用しようとしましたdynamic
- これはMVCや
Razor engine
- 私はaspxビュー(かみそりではない)を使用しようとしましたが、同じ結果になりました
デバッガーがプロパティを認識できる場合、プロパティにアクセスできないのはなぜですか。また、この問題を解決するにはどうすればよいですか。