2012-05-21 101 views
0

這裏的屬性是我:「System.Dynamic.ExpandoObject」不包含名爲「名稱」

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

但我得到的錯誤「System.Dynamic.ExpandoObject」不包含屬性名稱爲「名稱」。

listAddresses由10個項目組成。當我調試時,當我觀察它們中的每一個時,我會進入動態視圖,並且有名稱和標識。如何解釋這一點?

+0

我相信你需要轉換到適當的對象類型,所有應該工作正常 –

回答

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

Json(...)JsonResult,你不需要兩者。

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

不能使用C#的動態功能,而無需使用dynamic關鍵字。所以:

var listAddreses = GetAddresses().ToList(); 

給你留下一個List<ExpandoObject>這確實真的沒有任何你所提到的屬性。 但是如果你說:

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

它應該工作。

相關問題