.NET 핵심 WebAPI 포스트 매개 변수가 전달 될 때 수신 모드의 후단

원본 : 매개 변수 전달 모드를 수신 할 때 포스트 .NET 핵심 WebAPI의 후단

.NET 핵심 WebAPI 포스트 매개 변수가 전달 될 때 수신 모드의 후단

  1. Entity 클래스
  2. 동적 다이나믹 형
  3. 하는 jobject 매개 변수
  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 방법 파라미터 [FromBody]는 식별자 파라미터 값을 표시하는 대신에 URL로부터 본체 요구로부터 획득한다. [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