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

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

Mary-Kate Olsen
풀어 주다: 2025-01-02 15:01:37
원래의
295명이 탐색했습니다.

How to Post an Array of Complex Objects from jQuery to an ASP.NET MVC Controller Using JSON?

jQuery 및 ASP.NET MVC: JSON을 사용하여 복잡한 개체 배열 게시

문제:

jQuery에서 ASP.NET MVC 컨트롤러로 복잡한 개체 배열을 전달하는 방법은 무엇입니까? AJAX 요청? 컨트롤러 작업은 어떤 매개변수를 허용해야 합니까?

해결책:

jQuery 및 JSON을 사용하여 복잡한 객체 배열을 컨트롤러에 게시하려면 다음 단계를 따르세요.

  1. 배열을 직렬화하여 JSON:

    JSON.stringify()를 사용하여 객체 배열을 JSON 문자열로 변환합니다.

  2. 요청 헤더를 설정합니다.

    application/json에 Content-Type 헤더를 지정합니다. charset=utf-8.

  3. $.ajax() 메서드 사용:

    $.ajax()를 사용하여 AJAX 요청 생성 메서드를 사용하고 JSON 데이터를 데이터로 제공합니다. 매개변수.

컨트롤러 작업:

컨트롤러 작업을 사용자 정의 속성(JsonFilter)으로 장식하여 JSON 데이터를 역직렬화합니다. 속성은 매개변수 이름과 JSON 데이터 유형을 지정해야 합니다.

사용자 정의 속성 (JsonFilter):

public class JsonFilter : ActionFilterAttribute
{
    public string Param { get; set; }
    public Type JsonDataType { get; set; }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.ContentType.Contains("application/json"))
        {
            string inputContent;
            using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream))
            {
                inputContent = sr.ReadToEnd();
            }
            var result = JsonConvert.DeserializeObject(inputContent, JsonDataType);
            filterContext.ActionParameters[Param] = result;
        }
    }
}
로그인 후 복사

예:

JavaScript:

function getplaceholders() {
    var widgets = [];
    // ... populate the array

    $.ajax({
        url: '/portal/Designer.mvc/SaveOrUpdate',
        type: 'POST',
        dataType: 'json',
        data: JSON.stringify(widgets),
        contentType: 'application/json; charset=utf-8'
    });
}
로그인 후 복사

제어 장치 액션:

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
{
    // ...
}
로그인 후 복사

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿