Heim Backend-Entwicklung C#.Net-Tutorial Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?

Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?

Jun 23, 2017 pm 03:17 PM
asp.net javascript json 循环 Gebraucht 解决

1. Das Open-Source-Json-Serialisierungstool Newtonsoft.Json bietet eine Lösung für das Zirkelverweisproblem der Serialisierung:

Methode 1: Geben Sie die Json-Serialisierungskonfiguration als ReferenceLoopHandling.Ignore an

Methode 2: Geben Sie JsonIgnore an, um das Referenzobjekt zu ignorieren.

Beispiel 1: Lösen Sie die Json-Serialisierungsreferenzmethode von MVC:

Schritt 1: Fügen Sie einen Verweis auf Newtonsoft.Json hinzu Paket für das Projekt, Befehl: Insert-Package Newtonsoft.Json

Schritt 2: Fügen Sie dem Projekt eine Klasse hinzu und erben Sie JsonResult. Der Code lautet wie folgt:

Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?
/// <summary>/// 继承JsonResut,重写序列化方式/// </summary>public class JsonNetResult : JsonResult
{public JsonSerializerSettings Settings { get; private set; }public JsonNetResult()
    {
        Settings = new JsonSerializerSettings
        {//这句是解决问题的关键,也就是json.net官方给出的解决配置选项.                 
            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
        };
    }public override void ExecuteResult(ControllerContext context)
    {if (context == null)throw new ArgumentNullException("context");if (this.JsonRequestBehavior == JsonRequestBehavior.DenyGet && string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))throw new InvalidOperationException("JSON GET is not allowed");
        HttpResponseBase response = context.HttpContext.Response;
        response.ContentType = string.IsNullOrEmpty(this.ContentType) ? "application/json" : this.ContentType;if (this.ContentEncoding != null)
            response.ContentEncoding = this.ContentEncoding;if (this.Data == null)return;var scriptSerializer = JsonSerializer.Create(this.Settings);using (var sw = new StringWriter())
        {
            scriptSerializer.Serialize(sw, this.Data);
            response.Write(sw.ToString());
        }
    }
}
Nach dem Login kopieren
Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?

Schritt 3: BaseController zum Projekt hinzufügen und neu schreiben Bei der Json()-Methode lautet der Code wie folgt:

Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?
public class BaseController : Controller
{public StudentContext _Context = new StudentContext();/// <summary>/// 重写,Json方法,使之返回JsonNetResult类型/// </summary>protected override JsonResult Json(object data, string contentType,
        Encoding contentEncoding, JsonRequestBehavior behavior)
    {return new JsonNetResult
        {
            Data = data,
            ContentType = contentType,
            ContentEncoding = contentEncoding,
            JsonRequestBehavior = behavior
        };
    }
}
Nach dem Login kopieren
Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?

Schritt 4. Einfach wie gewohnt verwenden

Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?
//获取列表public JsonResult GetList()
{
    List<student> list = _Context.students.Where(q => q.sno == "103").ToList();//方法1return Json(list);//方法2//return new JsonNetResult() {//    Data=list//};
}</student>
Nach dem Login kopieren
Wie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?

Die erhaltenen Ergebnisse zeigen, dass diese Methode angibt, Zirkelverweise zu ignorieren. Wird sie nach der Angabe des Zyklus ignoriert? Serie? In den zurückgegebenen JSON-Daten oder Es gibt einige zirkuläre Daten

Um die EF Json-Serialisierungs-Zirkelreferenzmethode 2 zu lösen, fügen Sie die Annotation der JsonIgnore-Methode hinzu für das angegebene zugehörige Objekt

[JsonIgnore]public virtual ICollection<score> scores { get; set; }</score>
Nach dem Login kopieren

Die zurückgegebenen Ergebnisse enthalten keine zugehörigen Tabellendaten


Der Artikel ist reproduziert von:

Das obige ist der detaillierte Inhalt vonWie kann das Problem des JSON-Schleifenaufrufs in ASP.NET MVC gelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fünf Tipps, die Ihnen zeigen, wie Sie das Problem lösen können, dass sich das Black Shark-Telefon nicht einschaltet! Fünf Tipps, die Ihnen zeigen, wie Sie das Problem lösen können, dass sich das Black Shark-Telefon nicht einschaltet! Mar 24, 2024 pm 12:27 PM

Da sich die Smartphone-Technologie ständig weiterentwickelt, spielen Mobiltelefone eine immer wichtigere Rolle in unserem täglichen Leben. Als Flaggschiff-Telefon mit Schwerpunkt auf Spieleleistung erfreut sich das Black Shark-Telefon bei Spielern großer Beliebtheit. Manchmal sind wir jedoch auch mit der Situation konfrontiert, dass das Black Shark-Telefon nicht eingeschaltet werden kann. Zu diesem Zeitpunkt müssen wir einige Maßnahmen ergreifen, um dieses Problem zu lösen. Als Nächstes geben wir Ihnen fünf Tipps, wie Sie das Problem lösen können, dass sich das Black Shark-Telefon nicht einschaltet: Schritt 1: Überprüfen Sie zunächst die Akkuleistung. Stellen Sie zunächst sicher, dass Ihr Black Shark-Telefon über genügend Strom verfügt. Möglicherweise ist der Akku des Telefons leer

Der Treiber kann auf diesem Gerät nicht geladen werden. (Persönlich getestet und gültig) Der Treiber kann auf diesem Gerät nicht geladen werden. (Persönlich getestet und gültig) Mar 14, 2024 pm 09:00 PM

Jeder weiß, dass das Gerät möglicherweise nicht richtig funktioniert oder nicht richtig mit dem Computer interagiert, wenn der Computer den Treiber nicht laden kann. Wie lösen wir also das Problem, wenn auf dem Computer eine Meldung angezeigt wird, dass der Treiber auf diesem Gerät nicht geladen werden kann? Der unten stehende Editor zeigt Ihnen zwei Möglichkeiten, wie Sie das Problem einfach lösen können. Der Treiber kann auf diesem Gerät nicht geladen werden. Lösung 1. Suchen Sie im Startmenü nach „Kernel Isolation“. 2. Deaktivieren Sie die Speicherintegrität. Die Meldung oben lautet: „Die Speicherintegrität wurde deaktiviert. Ihr Gerät ist möglicherweise anfällig.“ Klicken Sie einfach darauf und ignorieren Sie es. 3. Das Problem kann nach einem Neustart der Maschine behoben werden.

Wie kann das Problem des automatischen Speicherns von Bildern beim Veröffentlichen auf Xiaohongshu gelöst werden? Wo ist das beim Posten automatisch gespeicherte Bild? Wie kann das Problem des automatischen Speicherns von Bildern beim Veröffentlichen auf Xiaohongshu gelöst werden? Wo ist das beim Posten automatisch gespeicherte Bild? Mar 22, 2024 am 08:06 AM

Durch die kontinuierliche Entwicklung der sozialen Medien ist Xiaohongshu zu einer Plattform für immer mehr junge Menschen geworden, auf der sie ihr Leben teilen und schöne Dinge entdecken können. Viele Benutzer haben beim Posten von Bildern Probleme mit der automatischen Speicherung. Wie kann man dieses Problem lösen? 1. Wie kann das Problem des automatischen Speicherns von Bildern beim Veröffentlichen auf Xiaohongshu gelöst werden? 1. Cache leeren Zuerst können wir versuchen, die Cache-Daten von Xiaohongshu zu löschen. Die Schritte sind wie folgt: (1) Öffnen Sie Xiaohongshu und klicken Sie auf die Schaltfläche „Mein“ in der unteren rechten Ecke. (2) Suchen Sie auf der persönlichen Center-Seite nach „Einstellungen“ und klicken Sie darauf. (3) Scrollen Sie nach unten und suchen Sie nach „; Option „Cache löschen“. Klicken Sie auf „OK“. Nachdem Sie den Cache geleert haben, geben Sie Xiaohongshu erneut ein und versuchen Sie, Bilder zu posten, um zu sehen, ob das Problem mit dem automatischen Speichern behoben ist. 2. Aktualisieren Sie die Xiaohongshu-Version, um sicherzustellen, dass Ihr Xiaohongshu

Wie kann das Problem verstümmelter Zeichen beim Importieren chinesischer Daten in Oracle gelöst werden? Wie kann das Problem verstümmelter Zeichen beim Importieren chinesischer Daten in Oracle gelöst werden? Mar 10, 2024 am 09:54 AM

Titel: Methoden und Codebeispiele zur Lösung des Problems verstümmelter chinesischer Daten, die in Oracle importiert werden. Beim Importieren chinesischer Daten in die Oracle-Datenbank treten häufig verstümmelte Zeichen auf. Dies kann auf falsche Datenbank-Zeichensatzeinstellungen oder Probleme bei der Kodierungskonvertierung zurückzuführen sein. . Um dieses Problem zu lösen, können wir einige Methoden anwenden, um sicherzustellen, dass die importierten chinesischen Daten korrekt angezeigt werden können. Im Folgenden finden Sie einige Lösungen und spezifische Codebeispiele: 1. Überprüfen Sie die Zeichensatzeinstellungen der Datenbank. In der Oracle-Datenbank sind die Zeichensatzeinstellungen

Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON May 04, 2024 pm 06:15 PM

Zu den Leistungsoptimierungsmethoden für die Konvertierung von PHP-Arrays in JSON gehören: Verwendung von JSON-Erweiterungen und der Funktion json_encode(); Verwendung von Puffern zur Verbesserung der Leistung der Schleifencodierung; JSON-Codierungsbibliothek.

Fehlerbehebung und Lösungen beim Aufladen von Black Shark-Mobiltelefonen Fehlerbehebung und Lösungen beim Aufladen von Black Shark-Mobiltelefonen Mar 22, 2024 pm 09:03 PM

Black Shark ist eine Smartphone-Marke, die für ihre starke Leistung und ihr hervorragendes Spielerlebnis bekannt ist. Sie wird von Gamern und Technikbegeisterten geliebt. Allerdings treten bei Black Shark-Telefonen, genau wie bei anderen Smartphones, verschiedene Probleme auf, unter anderem kommt es häufig zu Ladefehlern. Ein Ladefehler beeinträchtigt nicht nur die normale Nutzung des Mobiltelefons, sondern kann auch schwerwiegendere Probleme verursachen. Daher ist es sehr wichtig, das Ladeproblem rechtzeitig zu lösen. Dieser Artikel beginnt mit den häufigsten Ursachen für Ladefehler bei Black Shark-Mobiltelefonen und stellt Methoden zur Fehlerbehebung und Lösung von Ladeproblemen vor. Ich hoffe, dass er den Lesern bei der Lösung von Ladeproblemen bei Black Shark-Telefonen helfen kann.

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? May 06, 2024 pm 10:09 PM

Anmerkungen in der Jackson-Bibliothek steuern die JSON-Serialisierung und -Deserialisierung: Serialisierung: @JsonIgnore: Ignorieren Sie die Eigenschaft @JsonProperty: Geben Sie den Namen an @JsonGetter: Verwenden Sie die get-Methode @JsonSetter: Verwenden Sie die set-Methode Deserialisierung: @JsonIgnoreProperties: Ignorieren Sie die Eigenschaft @ JsonProperty: Geben Sie den Namen @JsonCreator an: Verwenden Sie den Konstruktor @JsonDeserialize: Benutzerdefinierte Logik

So lösen Sie das Problem, dass Laravel CSS-Stile nicht laden kann So lösen Sie das Problem, dass Laravel CSS-Stile nicht laden kann Mar 10, 2024 am 09:12 AM

Titel: So lösen Sie das Problem, dass Laravel keine CSS-Stile laden kann. Bei der Verwendung von Laravel für die Webentwicklung kommt es manchmal vor, dass CSS-Stile nicht geladen werden können, was zu einer abnormalen Anzeige der Seite führen kann. In diesem Artikel werden einige häufige Ursachen und Lösungen vorgestellt und spezifische Codebeispiele als Referenz bereitgestellt. 1. Überprüfen Sie zunächst, ob der CSS-Dateipfad korrekt ist. Normalerweise wird die CSS-Datei in Laravel-Projekten öffentlich platziert

See all articles