Ich versuche, eine C# Methode zurückgeben zu schreiben, die ein Modell serialisiert werden und ein JSON-Ergebnis zurück. Hier ist mein Code:JSON.NET Mit Action
public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
var items = db.Words.Take(1).ToList();
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
var converted = JsonConvert.SerializeObject(items, null, jsSettings);
return Json(converted, JsonRequestBehavior.AllowGet);
}
bekam ich folgende JSON Ergebnis, wenn ich Wörter gehen/Read in Chrome:
"[{\"WordId\":1,\"Rank\":1,\"PartOfSpeech\":\"article\",\"Image\":\"Upload/29/1/Capture1.PNG\",\"FrequencyNumber\":\"22038615\",\"Article\":null,\"ClarificationText\":null,\"WordName\":\"the | article\",\"MasterId\":0,\"SoundFileUrl\":\"/UploadSound/7fd752a6-97ef-4a99-b324-a160295b8ac4/1/sixty_vocab_click_button.mp3\",\"LangId\":1,\"CatId\":null,\"IsActive\":false}
Ich denke, die \“entkommen Anführungszeichen ein Problem sind, die bei einem Doppelklick serialize auftritt ein Objekt aus anderen Fragen. WCF JSON output is getting unwanted quotes & backslashes added
Es sieht auf jeden Fall, wie ich doppelt bin mein Objekt Serialisierung, da ich mein Ergebnis in die Json() Funktion zuerst mit JSON.NET serialisiert und dann passieren muss ich manuell serialisiert. zu vermeiden d Referenceloops, aber ich denke, dass meine Ansicht ein ActionResult benötigt.
Wie kann ich eine Action hier zurückkehren? Muss ich, oder kann ich nur eine Zeichenfolge zurückgeben?
Bei der Javascript-Rückgabe mache ich einfach JSON.parse (message) ;. – MiniRagnarok
Du meinst Javascript zu verwenden, um die/s einfach auszupacken? Ich benutze Razor HTML-Helfer für ein bestimmtes Paket, also weiß ich nicht, wie ich das zur Arbeit bekommen würde. – hubatish