[英]“'System.Dynamic.ExpandoObject' does not contain a definition for ”PropertyName"
[英]'System.Dynamic.ExpandoObject' does not contain a property with the name 'Name'
这是我所拥有的:
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();
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);
如果不使用dynamic
关键字,则不能使用C#的动态功能。 所以:
var listAddreses = GetAddresses().ToList();
给您留下一个List<ExpandoObject>
,它实际上没有您提到的任何属性。 但是,如果您说:
List<dynamic> listAddresses = GetAddresses().ToList();
它应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.