Ich versuche, eine Webformularseite mit einer Anzahl von Code-Behind webmethod
Funktionen in eine MVC-Ansicht mit einem Controller zu konvertieren.Rückgabe JSON über MVC-Controller vs Webmethod
Die Daten, die ich zurückbekomme, sind anders. Sie haben JSON richtig formatiert, aber die Webmethod gibt JSON wie folgt aus:
{"d":"{\"Success\":true,\"Data\":{\"QuoteId\":340439,\"LoginId\":40,
und die Steuerung kehrt:
"{\"QuoteId\":340444,\"LoginId\":40,
Sein nicht in data.d
Umwickeln wie es eingerichtet wird, in der JavaScript zu handhaben und Es gibt keine Success
oder Data
Objekte. Und wenn ich versuche, es zu analysieren ($.parseJSON(data)
) wie ich mit der webmethod
tat, gibt es mir den alten Fehler in Zeile 1 Nachricht.
Ich bin mir sicher, dass ich, wenn ich genug damit gespielt habe, mit der Art und Weise, wie die Daten durchkommen, arbeiten kann, aber ich habe viele Seiten, die ich in Zukunft verdecken muss und ich frage mich nur ob Es gibt einen einfachen Weg, um den Controller zu formatieren, wie die webmethod
tut.
Ich bin mir ziemlich sicher, dass ich weiß, warum die Daten anders formatiert sind, aber es würde mein Leben einfacher machen, wenn ich die Daten einfach auf die gleiche Weise zurückgeben könnte. Ich habe versucht, eine JsonConvert.SerializeObject(obj)
, die nur eine Zeichenfolge ist, und eine Return Json(obj)
, die ich denke, ist nur eine Zeichenfolge als auch, aber sie beide zurück, die gleiche, nicht-dat.d Weg zurückgeben.
Warum also nicht ein neues Objekt erstellen, um die Antworten zu umbrechen, wenn Sie möchten, dass es dasselbe JSON zurückgibt, das es zuvor zurückgegeben hat? 'public class JsonResponseWrapper {public bool Erfolg {get; set;} public object Daten {get; Set;}} etwas in diese Richtung. – mason
@mason Ich habe das versucht, aber aus irgendeinem Grund formatiert es die Daten nicht gleich. Ich kann es dazu bringen, im Wesentlichen gleich zu "schauen", aber es wirft Fehler nach unten in der JS, wo die Webmethode dies nicht tut. –