programing

JsonResult에 JavaScript 문자열 어레이의 AJAX 게시물이 항상 Null을 반환합니까?

madecode 2023. 3. 22. 23:25
반응형

JsonResult에 JavaScript 문자열 어레이의 AJAX 게시물이 항상 Null을 반환합니까?

JavaScript에서 문자열 배열을 구축하여 액션 메서드의 문자열 목록으로 결과를 가져오려고 합니다.다음은 내 JavaScript의 모습입니다.jQuery 1.4.2를 사용하고 있습니다.문제는 액션 메서드의 리스트가 항상 NULL로 표시되어 있다는 것입니다.JavaScript 문자열 배열이 C#의 문자열 목록에 올바르게 매핑되지 않습니까?

var test = ['test1', 'test2'];
var parms = {
  var1: 'some string',
  var2: test
};

$.ajax({
  type: "POST",
  url: "/Test/JSONTestAction",
  async: false,
  data: parms,
  dataType: "json",
  success: function(data) {

    // success
  }
});

그러면 Json Result는 다음과 같습니다.

public JsonResult JSONTestAction(string var1, List <string> var2) {
 // var2 is always NULL -- not good

 return Json(new {
  test = "test"
 });
}

jquery 1.4.2로 업데이트한 후에도 같은 문제가 발생하였습니다.솔루션은 여기에서 찾을 수 있습니다(Ajax 섹션).

ajax 옵션에서 true를 추가하면 됩니다.

$.ajax({
    type: "POST",
    traditional: true,
    url: "/Test/JSONTestAction",
    async: false,
    data: parms,
    dataType: "json",
    success: function(data) {

        // success
    }
});

이 변경은 PHP/Rails 사용자의 네이티브 동작을 개선하기 위한 것입니다. 여기서 파라미터 변경에 대해 자세히 알아볼있습니다.

다음과 같이 요청별로 활성화할 수 있습니다.

$.ajax({ 
 //Stuff...
 traditional:true 
});

또는 다음과 같이 글로벌하게 실행할 수 있습니다(요구를 실행하기 전에 한 번만 실행할 필요가 있습니다.

jQuery.ajaxSettings.traditional = true;

언급URL : https://stackoverflow.com/questions/2515773/ajax-post-of-javascript-string-array-to-jsonresult-as-liststring-always-return

반응형