>웹 프론트엔드 >JS 튜토리얼 >ASP.NET MVC4에서 JSON POST 데이터를 웹 API 메서드에 개체로 전달하는 방법은 무엇입니까?

ASP.NET MVC4에서 JSON POST 데이터를 웹 API 메서드에 개체로 전달하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-09 14:13:02343검색

How to Pass JSON POST Data as an Object to a Web API Method in ASP.NET MVC4?

JSON POST 데이터를 웹 API 메서드에 개체로 전달

ASP.NET MVC4 Web API에서 다음과 같은 시나리오가 발생할 수 있습니다. JSON 데이터가 포함된 POST 요청은 작업 메서드에 개체로 전달되어야 합니다. 그러나 적절한 구성이 없으면 작업 메서드의 매개 변수에 null 속성이 포함될 수 있습니다. 이 문제를 해결하려면 다음 단계를 수행해야 합니다.

1. Content-Type을 "application/json"으로 지정:

요청을 보낼 때 Content-Type 헤더가 "application/json"으로 설정되어 있는지 확인하세요. 데이터가 JSON 형식임을 서버에 알려줍니다.

2. JSON.stringify 메서드 사용:

클라이언트 측 코드에서 JSON.stringify 메서드를 사용하여 JSON 데이터를 JSON 문자열로 변환합니다. 이 단계는 모델 바인더가 JSON 데이터를 클래스 객체에 바인딩하는 데 중요합니다.

예:

var customer = { contact_name: "Scott", company_name: "HP" };
$.ajax({
    type: "POST",
    data: JSON.stringify(customer),
    url: "api/Customer",
    contentType: "application/json"
});

3. 액션 메소드 매개변수를 [FromBody]로 장식:

Web API 액션 메소드에서 JSON 데이터를 받을 매개변수를 [FromBody]로 장식합니다. 이 속성은 데이터가 요청 본문에서 바인딩되어야 함을 나타냅니다.

예:

public IActionResult Post([FromBody] Customer customer)
{
    // ...
}

4. 복잡한 객체 게시:

뷰 모델 클래스에 복잡한 속성(예: 목록 또는 중첩 클래스)이 포함된 경우 동일한 원칙이 적용됩니다. 클라이언트 측 코드가 클래스 구조와 일치하는 객체를 빌드하고 이를 올바른 Content-Type을 사용하여 JSON 데이터로 보내는지 확인하세요.

문제 해결:

  • 모델 바인딩이 일부 속성에서는 작동하지만 다른 속성에서는 작동하지 않는 경우 작업 메서드 매개변수가 다음으로 장식되어 있는지 확인하세요. [FromBody].
  • Content-Type을 명시적으로 설정하지 않은 경우 클라이언트 측 코드가 올바른 방법을 사용하고 있는지 확인하세요(예: contentType이 "application/json"으로 설정된 $.ajax).

위 내용은 ASP.NET MVC4에서 JSON POST 데이터를 웹 API 메서드에 개체로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.