2011-04-25 5 views
2

JSON 문자열의 배열을 사용자 정의 바인더없이 MVC3에 게시 할 수 있습니까? 배열은 체크 박스 값에서 생성되는 다음과 같이 내가 jQuery를 통해 그것을 게시하도록하겠습니다 :문자열의 JSON 배열을 ASP.NET MVC3에 바인딩

var checkedItems = $(":checked").map(function() { 
     return this.value; 
    }).get(); 

    $.post("/test/delete", { Items: checkedItems }); 

원시 포스트 쿼리 문자열은 다음과 같습니다 : 나는 MVc3 소스를 살펴했다

Items%5B%5D=test1.com&Items%5B%5D=test2.com&Items%5B%5D=test3.com 

그리고 [0], [1]과 같은 인덱스 값을 사용해야하는 것으로 보입니다. MVC3에서 배열을 기본적으로 바인딩 할 수없는 경우 게시 값을 변경하여 MVC3에 필요한 인덱스 값을 갖도록하는 간단한 방법이 있습니까?

답변

3

당신은 즉 JSON,이 같은 사용 JQuery와 아약스 기능으로 읽어 있도록 asp.net의 MVC에 콘텐츠 형식을 지정해야

+0

감사! 그게 내가 필요한 것입니다. – Mark

0

당신은 배열을

{ Items: JSON.stringify(checkedItems) } 

를 인코딩 그리고 다른 쪽을 디코딩 할 필요가있다. 그러나 JSON.stringify는 IE7에서 사용할 수 없습니다.

$.ajax({ 
     url: "/test/delete", 
     type: 'POST', 
     dataType: 'json', 
     data: JSON.stringify({Items: checkedItems}), 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 

     } 
    }); 

및 사용할 수에 json.stringify 할 json2.js를 얻을 :

+2

json2.js를 가져 오면 사용할 수 없을 때 JSON.stringify를 추가하고있을 때 JSON.stringify를 추가합니다. – ryudice

관련 문제