2011-04-25 64 views
2

是否可以將JSON字符串數組發佈到MVC3而不使用自定義綁定器?該陣列正在從複選框值創建和我通過jQuery如下張貼:將JSON數組綁定到ASP.NET MVC3

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

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

原始post查詢字符串看起來是這樣的:

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

我看看MVC3源看起來我需要使用像[0],[1]這樣的索引值。如果MVC3不能本地綁定數組,是否有一種簡單的方法來更改後值,以便他們具有MVC3所需的索引值?

回答

3

你需要指定的內容類型asp.net的MVC所以這是它讀成JSON,使用jQuery AJAX功能是這樣的:

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

     } 
    }); 

,並得到json2.js使json.stringify可在瀏覽器不supoprt它

+0

謝謝!這正是我需要的。 – Mark 2011-04-25 20:48:16

0

您需要的陣列編碼

{ Items: JSON.stringify(checkedItems) } 

然後它在另一邊進行解碼。但要小心--JSON.stringify在IE7中不可用。

+2

獲取json2.js,它將添加JSON.stringify時,它不可用,不要觸摸任何東西時,它會。 – ryudice 2011-04-25 20:31:32