这就是我所拥有的:
var listAddresses = GetAddresses().ToList();
return Json(new JsonResult { Data = new SelectList(listAddresses, "Name", "Id") }, JsonRequestBehavior.AllowGet);
但我收到错误'System.Dynamic.ExpandoObject'不包含名为'Name'的属性。
listAddresses由10个项目组成。当我调试时,当我观察它们中的每一个时,我转到动态视图并且有名称和ID。如何解决这个问题?
答案 0 :(得分:0)
var listAddresses = GetAddresses().ToList();
var data = new
{
Data = new SelectList(listAddresses, "Name", "Id")
};
return Json(data, JsonRequestBehavior.AllowGet);
Json(...)
是JsonResult
,您不需要两者。
答案 1 :(得分:0)
尝试这样 - >
var listAddresses = GetAddresses().ToList();
List<ListItem> addressList = new List<ListItem>();
foreach (IAddress address in listAddresses )
{
ListItem items = new ListItem();
items.Text = address.Name;
items.Value = address.ID;
addressList .Add(items);
}
}
return Json(new JsonResult { Data = new SelectList(addressList, "Value", "Text") }, JsonRequestBehavior.AllowGet);
答案 2 :(得分:0)
如果不使用dynamic
关键字,则无法使用C#的动态功能。所以:
var listAddreses = GetAddresses().ToList();
给你一个List<ExpandoObject>
,它真的没有你提到的任何属性。 然而如果你说:
List<dynamic> listAddresses = GetAddresses().ToList();
它应该有用。