Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C# ASP.NET WebAPI의 매개변수 바인딩이란 무엇입니까?

<시간/>

바인딩은 Web API가 controlleraction 메소드를 호출할 때 매개변수에 대한 값을 설정하는 과정입니다.

다양한 유형의 매개변수가 있는 Web API 메서드 및 바인딩 프로세스를 사용자 지정하는 방법.

매개변수가 int, bool, double 등과 같은 단순 유형인 경우 Web API는 URI(경로 데이터 또는 쿼리 문자열)에서 값을 가져오려고 시도합니다.

매개변수가 Customer, Employee 등과 같은 복합 유형이면 Web APIFramework는 요청 본문에서 값을 가져오려고 합니다.

[FromBody] 및 [FromUri] 속성을 사용하여 매개변수 바인딩 프로세스의 이 기본 동작을 변경할 수 있습니다.

FromUri -

매개변수가 단순 유형이면 web Api는 URI에서 값을 가져오려고 시도합니다.

Double,DateTime,GUID string과 같은 .NET 기본 유형은 String 유형에서 변환할 수 있는 모든 유형

public Student Get(int id){}

FromBody

복합 유형의 매개변수인 경우 Web Api는 메시지 본문의 값을 바인딩하려고 시도합니다.

Public Student Post(Employee employee){}

[FromUri]

Web API가 URI에서 복잡한 유형을 읽도록 하려면 매개변수에 [FromUri] 속성을 추가합니다.

[FromUri] 속성을 사용하여 Web Api가 복잡한 유형 fromQueryString의 값을 가져오도록 합니다.

public Student Get([FromUri] Employee employee)
public HttpResponseMessage Get([FromUri] Employee employee) { ... }

[FromBody]

[FromBody] 속성을 사용하여 기본값과 반대되는 요청 본문에서 기본 유형의 값을 가져옵니다.

아니요, 한 작업에 여러 FormBody를 사용할 수 없습니다.

Web API가 요청 본문에서 단순 유형을 읽도록 하려면 [FromBody]

를 추가합니다.

이 예에서 Web API는 미디어 유형 포맷터를 사용하여 요청 본문에서 name 값을 읽습니다.

public Student Post([FromBody] string name]){...}
public HttpResponseMessage Post([FromBody] string name) { ... }