Entschuldigung für die falsche Formatierung oder Schreibweise. Wie schreibe ich diesen Posten in Eile. :)Übergeben von Json-Daten an den MVC-Controller - JObject-Parameter der Aktionsmethode
Ich übergebe json Daten zu Aktionsmethode von einfachen Controller (MVC-Controller). Hier ist der folgende Beispielcode als Referenz.
JS Code:
var json = {IsInit: true, SearchParam: {Typ: "xx", Name: "xx", sort: ""}};
Nx$(document).ready(function() {
Nx$.ajax({
async: true,
contentType: "application/json; charset=utf-8",
type: "POST",
url: "Home/Data",
dataType: "json",
data: JSON.stringify(json),
success: function (msg) {
alert('success');
},
error: function (jqxhr, textStatus, error) {
alert('fail');
}
});
Aktion Methode:
<HttpPost>
<Route("Data")>
Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Newtonsoft.Json.Linq.JObject) As ActionResult
Return Nothing
End Function
Nun oben Aktion rufen gar nicht. Wenn Sie jedoch den folgenden Code verwenden, wird der Aufruf ausgeführt, aber SearchParam hat nur den Typ [object], und Sie können keinen Wert des searchParam-Objekts verwenden.
<HttpPost>
<Route("Data")>
Public Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Object) As Object
Return Nothing
End Function
Ich denke, dass es nicht in der Lage ist, mehrere Parameter in POST-Anfrage mit komplexen JSON-Objekt übergeben.
Wie kann ich JSON-Daten an die Aktionsmethode des MVC-Controllers übergeben, so dass SearchParam Json-Daten in JObject konvertiert werden. d. h. die erste Signatur der ersten Aktionsmethode sollte verwendet werden, ohne wesentliche Änderungen der Signatur der Methode.
Few Beobachtung:
wenn i obige Aktion Verfahren wie in api API-Controller eingeschaltet; Es fängt an zu arbeiten, aber nachdem du gesagt hast, dass du der folgenden Methodensignatur folgen musst. unter Ansatz funktioniert nicht für MVC-Controller. Ich weiß nicht warum? Aus irgendeinem Grund; Ich kann nicht mit API-Controller gehen.
<HttpPost> <Route("Data")> Function GetData(ByVal req As Newtonsoft.Json.Linq.JObject) As ActionResult Return Nothing End Function
Dank !!
Daten: JSON.Stringify (JSON), konvertiert Daten in Zeichenfolge. Ich würde vorschlagen, dass Sie den dataType entfernen: "json", in ajax params –