フォーマットやスペルが間違っています。私はこの記事を急いで書いています。 :)JsonデータをMVCコントローラに渡す - アクションメソッドのJObjectパラメータ
jsonデータをシンプルコントローラ(MVCコントローラ)のアクションメソッドに渡しています。以下は参考のためのサンプルコードです。
JSコード:
するvar JSON = {IsInit:真、SearchParam:{タイプ: "XX"、名称: "XX"、ソート: ""}}。
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');
}
});
アクションメソッド:今
<HttpPost>
<Route("Data")>
Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Newtonsoft.Json.Linq.JObject) As ActionResult
Return Nothing
End Function
、上記の行動は全く呼び出しません。以下のコードを使用すると、呼び出しが行われますが、SearchParamは[オブジェクト]型のため、searchParamオブジェクトの値は使用できません。
<HttpPost>
<Route("Data")>
Public Function GetData(ByVal IsInit As Boolean, ByVal SearchParam As Object) As Object
Return Nothing
End Function
複雑なjsonオブジェクトのPOSTリクエストで複数のパラメータを渡すことはできないと思います。
JSONデータをMVCコントローラのアクションメソッドに渡して、SearchParam JsonデータをJObjectに変換する方法を教えてください。すなわち、最初の第1のアクションメソッドシグネチャは、主要なシグネチャの変更がない場合に使用されるべきである。
いくつかの観察:私はAPIコントローラにAPIとしてアクション・メソッドの上になった場合
。それは動作を開始しますが、以下のメソッドシグネチャに従う必要があると言いました。以下のアプローチはMVCコントローラでは機能しません。なぜ分からないのですか?しかし何らかの理由で、私はAPIコントローラと一緒に行くことができません。
<HttpPost> <Route("Data")> Function GetData(ByVal req As Newtonsoft.Json.Linq.JObject) As ActionResult Return Nothing End Function
感謝!!
data:JSON.stringify(json)は、Dataをstringに変換しています。私はデータ型を削除することをお勧めします: "json"、ajax params –