C# ';System.Dynamic.ExpandooObject';不包含名为';名称';

C# ';System.Dynamic.ExpandooObject';不包含名为';名称';,c#,dynamic,expandoobject,C#,Dynamic,Expandoobject,以下是我所拥有的: var listAddresses = GetAddresses().ToList(); return Json(new JsonResult { Data = new SelectList(listAddresses, "Name", "Id") }, JsonRequestBehavior.AllowGet); 但我发现错误“System.Dynamic.ExpandoObject”不包含名为“name”的属性 listAddresses由10项组成。当我调试时,当我观

以下是我所拥有的:

var listAddresses = GetAddresses().ToList();
return Json(new JsonResult { Data = new SelectList(listAddresses, "Name", "Id") }, JsonRequestBehavior.AllowGet);
但我发现错误“System.Dynamic.ExpandoObject”不包含名为“name”的属性

listAddresses由10项组成。当我调试时,当我观看其中的每一个时,我进入动态视图,其中有名称和Id。如何回忆这一点

var listAddresses = GetAddresses().ToList();
var data = new 
{ 
    Data = new SelectList(listAddresses, "Name", "Id") 
};
return Json(data, JsonRequestBehavior.AllowGet);
Json(…)
是一个
JsonResult
,您不需要两者兼而有之。

像这样试试-->

var listAddresses=GetAddresses().ToList();
列表地址列表=新列表();
foreach(listAddresses中的地址)
{
ListItems=新建ListItem();
items.Text=地址.名称;
items.Value=address.ID;
地址列表。添加(项目);
}
}
返回Json(newJSONResult{Data=new SelectList(addressList,“Value”,“Text”)},JsonRequestBehavior.AllowGet);

如果不使用
dynamic
关键字,就无法使用C的动态功能。因此:

var listAddreses = GetAddresses().ToList();
给您留下一个
列表
,它实际上没有您提到的任何属性。但是如果你说:

List<dynamic> listAddresses = GetAddresses().ToList();
List listAddresses=GetAddresses().ToList();

它应该可以工作。

我认为您需要转换为适当的对象类型,所有这些都应该可以正常工作
List<dynamic> listAddresses = GetAddresses().ToList();