这是我有的:

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(...)是一个生成的icetagcode,你不需要两者。

其他提示

尝试这样 - >

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);
.

您无法使用C#的动态功能而不使用dynamic关键字。所以:

var listAddreses = GetAddresses().ToList();
.

让您使用一个非常真实没有您提到的属性的生成播放机构。然而如果你说:

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

它应该工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top