2012-04-18 129 views
5

是否有可能使用PetaPoco動態查詢來返回JSON在ASP.net WebAPI中?返回Json使用PetaPoco Dynamic和WebAPI

//的WebAPI控制器

public class BranchController : ApiController 
{ 
    public IEnumerable<dynamic> Get() 
    { 
     // Create a PetaPoco database object 
     var db = new PetaPoco.Database("DefaultConnection"); 

     // Show all Branches 
     var b = db.Query<dynamic>("SELECT * FROM Branches").ToList(); 

     return b; 
    } 

} 

我收到一個錯誤

要XML序列化,其自IEnumerable繼承的類型必須添加的實現(System.Object的)

+0

我從來沒有用過PetaPoco,但你嘗試返回的對象轉換爲動態的JSONObject或JsonArray實例? http://goo.gl/BaIx5 – cecilphillip 2012-04-19 04:15:25

回答

0

既然PetaPoco返回List<dynamic>這裏真正的答案是「WebApi可以從List返回Json」

答案是肯定的,但WebApi有一個名爲Content Negotiation的東西比根據請求返回Json或XML。

嘗試請求JSON或嘗試一下本作XML:

// Show all Branches 
    return (IEnumerable<dynamic>)db.Query<dynamic>("SELECT * FROM Branches");