.NETコアWebAPIのポストパラメータが渡された場合、受信モードの後端

オリジナル: パラメータ渡しモードを受信したときにポスト.NETのコアWebAPIの後端

.NETコアWebAPIのポストパラメータが渡された場合、受信モードの後端

  1. Entityクラス
  2. ダイナミックダイナミックタイプ
  3. jオブジェクトのパラメータ
  4. 単一のパラメータ(文字列パラメータ)

ポスト要求コード遠位A.

$.ajax({
           url: "/api/student/poststudent",
           type: 'POST',
           data:JSON.stringify({ name: "张三", age: 21 }),
           success:function () {
           },
           dataType: "json",
           contentType: "application/json"
       });

パラメトリックの後端を受けるB.

1.エンティティクラス

Entityクラスは、非常に高い周波数のパラメータを渡すための簡単な方法です。

  1. エンティティークラスを追加します
    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
  1. バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent(Student student)
{
}
  1. パラメータの結果を受け取ります

2.dynamicダイナミック型

  1. バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent(dynamic student)
{
    var name = student.name;//name大小写与前端参数一致
    var age = student.age;
}
  1. パラメータの結果を受け取ります

3.JObjectパラメータ

  1. パッケージはMicrosoft.AspNetCore.Mvc.NewtonsoftJsonを導入しました
  2. 参照の追加 using Newtonsoft.Json.Linq;
  3. バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent(JObject student)
{
}
  1. パラメータの結果を受け取ります

4.シングルパラメータ(文字列パラメータ)

あなたは、文字列の内容に単一引用符と二重引用符で文字列パラメータ、および二重の袋を送ることができます!

  1. また、上記実施形態とは異なり、コードの前端
$.ajax({
           url: "/api/student/poststudent",
           type: 'POST',
           data:'"name=张三,age=21"',//这里是重点!用单引号包一个双引号,双引号里为字符串内容!
           success:function () {
           },
           dataType: "json",
           contentType: "application/json"
       });
  1. バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent([FromBody] string values)
{
}

WEBAPIメソッドのパラメータは、パラメータ値がボディ要求から、代わりのURLから取得されるべきで示す[FromBody]識別子を先行しました。[FromBody]背景がなければ、パラメータ値を識別するために失敗します。

  1. パラメータの結果を受け取ります

設定は、クロスドメイン許可します

クロスドメインの設定を許可するクロスドメインのサポートの需要が存在する場合。Stateup.csに次のコードを追加します。

  1. ConfigureServices変更方法は、次のコードを追加します。
//允许一个或多个来源可以跨域
services.AddCors(options =>
{
      options.AddPolicy("CustomCorsPolicy", policy =>
      {
             // 设定允许跨域的来源,有多个可以用','隔开
             policy.WithOrigins("https://localhost:5000")//只允许https://localhost:5000来源允许跨域
             .AllowAnyHeader()
             .AllowAnyMethod()
             .AllowCredentials();
      });
});
  1. 設定の変更方法は、次のコードを追加します。
app.UseCors("CustomCorsPolicy");

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/12316554.html