0

这是我所拥有的:

var listAddresses = GetAddresses().ToList();
return Json(new JsonResult { Data = new SelectList(listAddresses, "Name", "Id") }, JsonRequestBehavior.AllowGet);

但我收到错误“System.Dynamic.ExpandoObject”不包含名为“Name”的属性。

listAddresses 由 10 个项目组成。当我调试时,当我观看它们中的每一个时,我会转到动态视图并且有名称和 ID。这个怎么恢复?

4

3 回答 3

0
var listAddresses = GetAddresses().ToList();
var data = new 
{ 
    Data = new SelectList(listAddresses, "Name", "Id") 
};
return Json(data, JsonRequestBehavior.AllowGet);

Json(...)是一个JsonResult,你不需要两者。

于 2012-05-21T12:35:55.600 回答
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);
于 2012-05-21T12:46:29.100 回答
0

dynamic不使用关键字就不能使用 C# 的动态特性。所以:

var listAddreses = GetAddresses().ToList();

给你留下一个List<ExpandoObject>真正没有你提到的任何属性的东西。 但是,如果您说:

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

它应该工作。

于 2012-05-21T13:08:56.583 回答