Asp.net web API:包含多个对象的返回对象

时间:2014-05-18 17:55:35

标签: asp.net xml json asp.net-mvc-4 asp.net-web-api

我可以Get()单个视图模型但是当我有一个包含多个视图模型的View模型时,该对象不会返回。我也可以Get()和单个模型数组。

当我调试时,我可以看到该视图模型确实包含数据,甚至直到返回。但只有一个空的{}对象才能到达客户端。我认为有一些基本的我不知道。当视图模型更复杂时,是否必须将视图模型序列化为JSON或XML?如果是这样,有人能指出我正确的方向吗?

我是以错误的方式来做这件事的吗?我应该为每个模型制作一个Web API吗?如果我想要与该模型相关联的模型,那么我将进行两次调用而不是一次?

理想情况下,我希望使用单个API来提取模型及其关联模型,只对服务器进行一次调用。除非不推荐。

示例:

public BookVM GetBookAndChapters(int id)
    {
        Book book = db.Books.Find(id);

        if (book == null)
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
        }


        BookVM bookvm = new BookVM 
        {
            Book = book,
            Chapters = db.Chapters.Where(c => c.BookId == book.BookId).ToList()
        }

        return bookvm ;
    } 

如果我只是要求一本书,我会得到正确的回报。如果我只是要求章节,我会得到一系列章节。如果我要求包含Book和Chapters的BookVM,我将获得一个{}空对象。

0 个答案:

没有答案