A:$、Content-Typeの、でアヤックス、書いていない、デフォルト
アプリケーション/ X - WWW - フォーム- URLエンコード
共通するのは、この種のです
この方法後端部には、取得するには、可能なデフォルト.NetCoreフォームを取得することができます任意の特性パラメータと伝送複数のエンティティを追加する必要はありません。
2:コンテンツタイプに交換アプリケーション/ JSON一度;、バックエンドは、[FormBody]パラメータを取得するために特性を追加する必要があります
1 /// <まとめ> 2 /// データのシリアル化を介してのAjax +その他の物理的パラメータの着信要求ネイティブの実施形態、RequestPayloadのデータ 。3 /// </要約> 4 /// <PARAM名= "JDATA"> </ PARAM> 。5 [HttpPost] 。6 [ルート(" / GET / HH " )] 。7 公共 IActionResult fdasfsae([FromBody] KJ L、[FromBody] int型 YY、[FromBody] 列BB) 。8 { 9 // NetCore、トランスポートフォーマットのcontentType:「ファイルアプリケーション/ JSON;のcharset = UTF-8」 10 // 後は値を取得する[FromBody]追加する必要があり、単一のエンティティに結合させることができ、結合Lが成功し、一般的なパラメータとBB YY GET値 11 #regionコメントコード 12である // ({$アヤックス 13は // タイプ: "POST"、 14 // URL "/ GET / HH"、 15 // データ:JSON.stringify({A :. 1、B: 2、C:4、 "YY ":99、 "BB":" マッチ"}) // シリアライズされていない場合、後端が得られず、一連の、また、あなたは値を取得するには、FormBodyを追加する必要があり、FromForm値を得ることができない 16 // のcontentType: "ファイルアプリケーション/ JSON;のcharset = UTF-8" 。17 //を}); 18である // 後端は付加価値[FromForm]デフォルト値を取得することができない、追加[FromBodyダイレクトあるヌル 19。 #endregion 20は 21であるリターン JSON(" OK " )。 22 }
図は、エンティティパラメータおよび他の一般的なパラメータであり、一般的なパラメータは以下の値をとります
[HttpPost] [ルート(" / GET / kJの" )] パブリック IActionResult IO([FromBody] kmmm KJ、[FromBody] int型 YY、[FromBody] 列BB) { /// 接合【FromBody]が、受信できませんパラメータ // kmmmソリッドモデルにバインドすることができ、かつ一般的なパラメータは値yyを取得できませBB }
ソリューション:
オブジェクトを書き込み、これはああ、NetCoreはラインI上のオブジェクトにバインドされています。送信アプリケーション/ jsonのは便利ではないので、あなたが実装モデルバインディングを書き換える必要があるかもしれない、あなたは、jオブジェクトによって取得することができます
/// <まとめ> /// 共通の基準にRequestPayload、全体の物理的パラメータのデータのシリアル化データを介して、取得するネイティブAjaxリクエストメソッドの複数のパラメータ /// </要約> /// <名前= PARAM "JDATA"> </ param>の /// <戻り値> </戻り値> [HttpPost] [ルート(" / GET / kJの" )] パブリックIActionResult IO([FromBody] Newtonsoft.Json.Linq.JObject JDATA ) { // 関数EE(){ // VAR = {Aモデル:. 1、B:2、C :. 4、}; // VARのARR = [{ "A" :. 1、 "B" :. 1、「C ":2、" C「: 3}]。// / *送信JSON配列 // JSON.stringify JSON = VAR(ARR); // VAR KHG = // { // K:ARR、 // 配列を指示することができない、受信されたjオブジェクトの後端に、シリアライゼーションエラー // // K:モデル、 // 書き込み直接JSONオブジェクトが可能である @の YYは:34、である @ BB: "大丈夫"、 // }; // $アヤックス({ // タイプ: "POST"、 // URL:「/ GET / kJの」、 // データ:JSON.stringify(KHG)、 // のcontentType: "アプリケーション/ JSON;のcharset = UTF-8" // })。 // } // 動的JSON = JDATA。 // Newtonsoft.Json.Linq.JObject jUser = json.k。 // KJ kmmm = jUser.ToObject <KJ>(); // int型YY = json.yy。 // 文字列BB = json.bb; リターン JSON(" OK " ); }
3:$アヤックスと、それは同じである$ .post()は、デフォルトのContent-Typeがapplication / x-www-form-urlencodedです。