繁体   English   中英

'System.Dynamic.ExpandoObject'不包含名称为'Name'的属性

[英]'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM