Анонимный тип - это обычный статический тип в .NET, просто вы не даете ему имени (однако, компилятор). Вот почему кастинг dynamic
не будет работать. Однако, если у вас есть контроль над Foo()
, вы можете построить и вернуть объект dynamic
вместо анонимного, а затем ваш код будет работать. Это должно сделать трюк:
dynamic JsonResult Foo() {
dynamic data = new ExpandoObject();
data.details = "something";
data.mode = "More";
return Json(data);
}