Ich verwende Web API, um Daten aus der Datenbank abzurufen. Ich habe nur 1 Tabelle "tblMessage" und möchte Daten von dieser Tabelle erhalten.
Ich habe alles eingerichtet, aber dann, wenn ich die Website leite. Der Fehler sagt immer
Der Typ 'ObjectContent'1 konnte den Antworttext für den Inhaltstyp' application / xml 'nicht serialisieren
Ich habe einige Posts auf stackoverflow gelesen, die sagen, dass der Fehler behoben werden konnte, indem der Browser angewiesen wurde, Daten im json-Format auszugeben. Danach wird der Fehler
Der Typ 'ObjectContent'1 konnte den Antworttext für den Inhaltstyp' application / json
nicht serialisieren
Ich habe alle Lösungen aus den folgenden Posts versucht, aber sie beheben das Problem nicht (Browser meldet den gleichen Fehler)
Fehler beim Serialisieren des Antworttextkörpers für den Inhaltstyp
Was genau ist dieser Fehler?
%Vor% Ändern IEnumerable<Message
& gt; zu List<Message>
bis
%Vor% UPDATE:
Aber hüte dich davor, OutOfMemoryException
zu erhalten, weil diese Methode alle Message
-Objekte im lokalen Speicher speichert, so dass du eine Art Paging implementieren musst.
Für diese Art der Datenabfrage sollten Sie auf jeden Fall Paging für Ergebnisse erstellen. Sie haben zwei Optionen zum Paging in der Web-API.
Die erste Option, mit der Sie OData verwenden können, um ein IQueryable-Objekt von Ihrer Aktionsmethode zurückzugeben. Damit unterstützt Ihre Aktion Paging.
Die zweite Option besteht darin, einen Controller zu erstellen, der Paging unterstützt. Ich stelle ein Beispiel unten.
%Vor%Der obige Code unterstützt Paging und Sie können die Anzahl der Aufrufe festlegen, die von der Clientseite zurückgegeben werden.
Ich hatte das gleiche Problem mit Chrome, nicht so sehr mit IE. Um es zu beheben, habe ich die folgenden Zeilen bei der Global.asax.cs, Application_Start () -Methode verwendet:
%Vor%Ich hatte das gleiche Problem und das ist die Lösung, die ich gefunden habe
Nach dem Aktualisieren des Entitätsdatenmodells müssen Sie ProxyCreationEnabled
auf false
in Ihrem Modell setzen
Configuration.ProxyCreationEnabled = false;
Mein Beispiel:
%Vor%Tags und Links asp.net-web-api c# entity-framework serialization json.net