Na czym polega problem?Jak korzystać z Delta <T> z Microsoft ASP.NET Web API OData z kodem First JsonMediaTypeFormatter
Próbuję włączyć łatanie w mojej api aplikacji ASP.net web. Używam frameworka kodu pierwszego elementu.
mam metoda następujący nagłówek, który można ustawić punkt przerwania i to będzie hit:
[AcceptVerbs("PATCH")]
public async Task<HttpResponseMessage> Patch(long appId, long id, Delta<SimpleFormGroup> formGroup)
Jednakże gdy zgłoszę formGroup.Patch (podmiot), są dokonywane żadne zmiany do mojej jednostki. Jeśli umieściłem następujące okno w bezpośrednim oknie:
formGroup.GetChangedPropertyNames()
Ta kolekcja jest pusta, co wydaje się błędne.
Co próbowałem?
I zostały w odniesieniu do następujących przykładów
http://techbrij.com/http-patch-request-asp-net-webapi http://www.strathweb.com/2013/01/easy-asp-net-web-api-resource-updates-with-delta/
Wydaje się, że problem z JSON MediaType Formatter nie wiedząc, jak zbudować obiekt Delta prawidłowo, jednak w 2 linku filip wydaje się sugerować, że powinien działać bez oDataMediaTypeFormatter.
Zacząłem od próby serializowania mojego modelu do reprezentacji EDMX, a następnie wyciągnąłem z niego plik CSDL, dzięki czemu mogę utworzyć oDataMediaTypeFormatter, ale też tam trafiłem i wydaje się to trochę przesadzone.
Jeśli ktokolwiek mógłby rzucić jakiekolwiek światło na ten temat, byłoby to bardzo cenne. Daj mi znać, jeśli potrzebujesz więcej informacji.
EDIT:
Oto definicja klasy dla SimpleFormGroup:
public class SimpleFormGroup
{
public int LastUpdate;
public string Identifier;
public string Title;
public int DisplayOrder;
}
A oto dane, które przesyłam:
Content-Type: 'application/json'
{ "DisplayOrder" : "20 }
Dzięki, Pete
Czy możesz dodać definicję klasy dla SimpleFormGroup i JSON, który wysyłasz, do PATCH? –
Zobacz powyżej ... W tej chwili znalazłem obejście tego problemu, ale chciałbym również usłyszeć twoje przemyślenia. –
To nie jest poprawne JSON, biorąc pod uwagę cytat po lewej stronie 20. Czy jest tam końcowy cytat? wartość lub brak cytatu z otwarcia? – Rich