5

是否可以使用 PetaPoco 动态查询在 ASP.net WebAPI 中返回 Json?

//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 继承的类型必须具有 Add(System.Object) 的实现

4

2 回答 2

2

JSON.Net 开箱即用地处理这个问题,所以我不得不添加一个自定义格式化程序。

这是我用来解决问题的 MSDN 文章:http: //code.msdn.microsoft.com/Using-JSONNET-with-ASPNET-b2423706

于 2012-04-19T18:11:14.627 回答
0

由于 PetaPocoList<dynamic>在这里返回一个真正的答案是“WebApi 可以从列表中返回一个 Json”吗?

答案是肯定的,但是 WebApi 有一个叫做Content Negotiation的东西,而不是根据请求返回 Json 或 XML。

尝试请求 Json 或为 XML 尝试这个:

    // Show all Branches
    return (IEnumerable<dynamic>)db.Query<dynamic>("SELECT * FROM Branches");
于 2012-04-19T14:46:22.487 回答