>백엔드 개발 >C++ >JSON을 사용하여 복잡한 개체 배열을 ASP.NET MVC 컨트롤러에 전달하는 방법은 무엇입니까?

JSON을 사용하여 복잡한 개체 배열을 ASP.NET MVC 컨트롤러에 전달하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-01 02:28:09315검색

How to Pass Arrays of Complex Objects to ASP.NET MVC Controllers Using JSON?

ASP.NET MVC 컨트롤러에 복잡한 개체 배열 전달

이 시나리오에서는 복잡한 개체 배열을 ASP.NET MVC 컨트롤러에 전달하려고 합니다. 컨트롤러 액션. 이를 달성하려면 여러 단계가 필요합니다.

뷰 준비

질문에 제공된 코드는 이미 객체 배열을 준비합니다. 여기서 핵심은 이 배열을 컨트롤러가 구문 분석할 수 있는 JSON 형식으로 변환하는 것입니다. 이렇게 하려면 솔루션의 향상된 보기 코드에 표시된 대로 jQuery 라이브러리의 $.toJSON() 함수를 사용하세요.

function getplaceholders() {
    // ...
    var postData = { widgets: results };
    $.ajax({
        // ...
        data: $.toJSON(widgets),
        // ...
    });
}

컨트롤러 작업 장식

컨트롤러 작업이 JSON 데이터를 수락하고 처리하려면 사용자 정의 속성으로 장식되어야 합니다. 이 경우 JsonFilter 속성을 사용합니다.

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)

Param 속성은 JSON 데이터를 수신할 매개변수 이름을 지정하고 JsonDataType은 역직렬화에 필요한 데이터 유형을 정의합니다.

사용자 정의 속성 기능

JsonFilterAttribute 구현은 HTTP 요청을 가로챕니다. JSON 콘텐츠가 포함되어 있는지 확인합니다. 그렇다면 Json.NET의 JsonConvert.DeserializeObject를 사용하여 JSON을 지정된 데이터 유형으로 역직렬화하고 이를 해당 작업 매개변수에 할당합니다.

public class JsonFilter : ActionFilterAttribute
{
    // ...
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // ...
        var result = JsonConvert.DeserializeObject(inputContent, JsonDataType);
        filterContext.ActionParameters[Param] = result;
    }
}

이 단계를 따르면 복잡한 배열을 성공적으로 전달할 수 있습니다. 뷰에서 ASP.NET MVC 컨트롤러로 개체를 전송합니다.

위 내용은 JSON을 사용하여 복잡한 개체 배열을 ASP.NET MVC 컨트롤러에 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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