programing

ASP.NET MVC 컨트롤러에 jQuery Ajax POSTing 배열

nasanasas 2020. 12. 15. 19:23
반응형

ASP.NET MVC 컨트롤러에 jQuery Ajax POSTing 배열


여기에 뭔가 빠졌습니다. 이 jQuery JavaScript가 있습니다.

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    data: {
        orderedIds: orderedIds,
        unixTimeMs: new Date().getTime()
    }
});

orderedIdsJavaScript 숫자 배열은 어디에 있습니까 (예 :) var orderedIds = [1, 2].

처리 Controller방법은 다음과 같습니다.

[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
    ...
}

나는 넣었을 때 Debugger.Break()의를 UpdateNoteOrder(), orderedIdsnull조사 식 창에. ( unixTimeMs그러나에는 숫자 값이 있습니다.)

어떻게 통해 숫자 배열을 전달 않는 $.ajax()그러한 orderedIdsA는 long[]내 컨트롤러는?


traditional매개 변수를 true다음과 같이 설정하십시오 .

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    traditional: true,
    data: {
        orderedIds: orderedIds,
        unixTimeMs: new Date().getTime()
    }
});

jquery 1.4부터이 매개 변수는 객체를 쿼리 매개 변수로 직렬화하는 메커니즘이 변경 되었기 때문에 존재합니다.


orderedId를 매개 변수 배열로 바꿔야합니다. 그렇지 않으면 컨트롤러가 인식하지 못합니다.

$.param({ orderedIds: orderedIds });  

귀하의 코드에서 :

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    data: {
        orderedIds: $.param({ orderedIds: orderedIds }),
        unixTimeMs: new Date().getTime()
    }
});

참조 URL : https://stackoverflow.com/questions/4402036/jquery-ajax-posting-array-to-asp-net-mvc-controller

반응형