Web-Api - Rückgabe ein dynamisches Objekt mit status-code 201

Ich versuche, die Rückkehr der zuletzt hinzugefügte entity-Id in einer Web-Api-Methode Aktion als JSON. Beispiel:

{ bookId = 666 }

Den Controller-Action-code ist wie folgt:

[HttpPost, Route("")]
public HttpResponseMessage Add(dynamic inputs)
{
    int bookId = bookService.Add(userId, title);

    dynamic book = new ExpandoObject();
    book.bookId = bookId

    return new HttpResponseMessage(HttpStatusCode.Created)
    {
        Content = new ObjectContent<dynamic>(book,
            new JsonMediaTypeFormatter
            {
                UseDataContractJsonSerializer = true
            })
    };
}

Das problem hier ist, um es zu erreichen Rückgabe eines dynamischen Inhalten (ohne Dto) und die Rückkehr der HttpStatusCode.Angelegt (http-status 201).

Nun habe ich den nächsten Fehler:

{"Message":"Ein Fehler ist aufgetreten.","ExceptionMessage":"Die 'ObjectContent`1' type Fehler beim serialisieren der Antwort body für content-type 'application/json; charset=utf-8'.","ExceptionType":"System.InvalidOperationException","StackTrace":null,"InnerException":{"Message":"Ein Fehler ist aufgetreten.","ExceptionMessage":"No se espera el tipo' - System.Dynamisch ist.ExpandoObject' ...

wenn ich die new ObjectContent<dynamic> durch new ObjectContent<ExpandoObject> bekomme ich die richtige 201 status-header Antwort, aber das JSON Ergebnis ist wie folgt:

[{"Key":"bookId","Value":666}]

So, ist es möglich, zurück { bookId: 666} mit Dynamik (nicht Dtos) festlegen der header-status-code 201 (Created)?

Danke für Eure Hilfe.

InformationsquelleAutor Xavier Egea | 2014-06-25
Schreibe einen Kommentar