>백엔드 개발 >C++ >jQuery Ajax를 사용하여 객체 배열을 MVC 컨트롤러에 올바르게 전달하는 방법은 무엇입니까?

jQuery Ajax를 사용하여 객체 배열을 MVC 컨트롤러에 올바르게 전달하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-21 17:21:10941검색

How to Properly Pass an Array of Objects to an MVC Controller Using jQuery Ajax?

jQuery Ajax를 사용하여 MVC 컨트롤러에 객체 배열 보내기

jQuery의 ajax() 메서드를 사용하여 MVC 컨트롤러에 객체 배열을 보낼 때 컨트롤러의 매개변수가 null 값을 받을 수 있습니다. 이 문서에서는 솔루션을 간략하게 설명합니다.

Null 값 문제 해결

이 문제는 일반적으로 잘못된 데이터 직렬화 및 콘텐츠 유형 처리로 인해 발생합니다. 문제를 해결하는 방법은 다음과 같습니다.

  1. 콘텐츠 유형 및 데이터 유형 설정:

    ajax() 기능에는 명시적인 contentTypedataType 설정이 필요합니다.

    <code class="language-javascript">contentType: 'application/json; charset=utf-8',
    dataType: 'json',</code>
  2. JSON 직렬화:

    객체 배열은 JSON.stringify()을 사용하여 JSON 형식으로 직렬화되어야 합니다. 다음과 같이 데이터를 구성하세요.

    <code class="language-javascript">things = JSON.stringify({ things: things });</code>

예시

이 예에서는 객체 배열을 성공적으로 전달하는 방법을 보여줍니다.

<code class="language-javascript">$(document).ready(function() {
    const things = [
        { id: 1, color: 'yellow' },
        { id: 2, color: 'blue' },
        { id: 3, color: 'red' }
    ];

    const data = JSON.stringify({ things: things });

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        type: 'POST',
        url: '/Home/PassThings',
        data: data,
        success: function() {
            $('#result').html('"PassThings()" successfully executed.');
        },
        error: function(response) {
            $('#result').html(response.responseText); // Display error details
        }
    });
});</code>

해당 컨트롤러 메서드(C# 예):

<code class="language-csharp">public void PassThings(List<Thing> things)
{
    // Process the 'things' list here
}</code>

/Home/PassThings를 실제 컨트롤러와 액션으로 바꾸는 것을 잊지 마세요. error 대신 failure을 사용하면 더 많은 정보를 제공하는 오류 처리가 가능합니다. 이러한 수정된 접근 방식은 적절한 데이터 전송을 보장하고 null가치 문제

를 방지합니다.

위 내용은 jQuery Ajax를 사용하여 객체 배열을 MVC 컨트롤러에 올바르게 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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