.NETコアWebAPIのポストパラメータが渡された場合、受信モードの後端
- Entityクラス
- ダイナミックダイナミックタイプ
- jオブジェクトのパラメータ
- 単一のパラメータ(文字列パラメータ)
ポスト要求コード遠位A.
$.ajax({
url: "/api/student/poststudent",
type: 'POST',
data:JSON.stringify({ name: "张三", age: 21 }),
success:function () {
},
dataType: "json",
contentType: "application/json"
});
パラメトリックの後端を受けるB.
1.エンティティクラス
Entityクラスは、非常に高い周波数のパラメータを渡すための簡単な方法です。
- エンティティークラスを追加します
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
- バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent(Student student)
{
}
- パラメータの結果を受け取ります
2.dynamicダイナミック型
- バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent(dynamic student)
{
var name = student.name;//name大小写与前端参数一致
var age = student.age;
}
- パラメータの結果を受け取ります
3.JObjectパラメータ
- パッケージはMicrosoft.AspNetCore.Mvc.NewtonsoftJsonを導入しました
- 参照の追加
using Newtonsoft.Json.Linq;
- バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent(JObject student)
{
}
- パラメータの結果を受け取ります
4.シングルパラメータ(文字列パラメータ)
あなたは、文字列の内容に単一引用符と二重引用符で文字列パラメータ、および二重の袋を送ることができます!
- また、上記実施形態とは異なり、コードの前端
$.ajax({
url: "/api/student/poststudent",
type: 'POST',
data:'"name=张三,age=21"',//这里是重点!用单引号包一个双引号,双引号里为字符串内容!
success:function () {
},
dataType: "json",
contentType: "application/json"
});
- バックグラウンド処理後の要求コード
[HttpPost("{id}")]
public void PostStudent([FromBody] string values)
{
}
WEBAPIメソッドのパラメータは、パラメータ値がボディ要求から、代わりのURLから取得されるべきで示す[FromBody]識別子を先行しました。[FromBody]背景がなければ、パラメータ値を識別するために失敗します。
- パラメータの結果を受け取ります
設定は、クロスドメイン許可します
クロスドメインの設定を許可するクロスドメインのサポートの需要が存在する場合。Stateup.csに次のコードを追加します。
- ConfigureServices変更方法は、次のコードを追加します。
//允许一个或多个来源可以跨域
services.AddCors(options =>
{
options.AddPolicy("CustomCorsPolicy", policy =>
{
// 设定允许跨域的来源,有多个可以用','隔开
policy.WithOrigins("https://localhost:5000")//只允许https://localhost:5000来源允许跨域
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
- 設定の変更方法は、次のコードを追加します。
app.UseCors("CustomCorsPolicy");