2012-03-12 50 views
1

我使用MVC 3,我有以下控制器:綁定JSON到IEnumerable的使用MVC 3

[HttpPost] 
public ActionResult Suggest(IEnumerable<Connection> connect) 
{ 
    return Json(new { result = true }); 
} 

public class Connection 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
} 

我JQuery的樣子:

var connections = $('.on'); 
var connect = []; 

$.each(connections, function (i, item) { 
    var span = $(item); 

    var id = span.attr('data-entity-id'); 
    var name = span.attr('data-entity-name'); 


    connect.push({ Id: id, Name: name }); 
}); 

$.post('myurl', connect, function (data) { 
    $('.result').html(data); 
}); 

的JSON結合使用此代碼不起作用。

+0

請注意如何生成'span.on'元素? – 2012-03-12 19:02:05

回答

2

您不會發布JSON。您需要將數據串聯起來,然後告訴服務器您要發送JSON數據。爲了將JSON串聯起來,您需要包含Crockford的JSON2庫。 (這是誰發明了JSON的傢伙。)

$.ajax({ 
    url: "myurl", 
    type: "POST", 
    data: JSON.stringify({ connect: connect }), 
    contentType: 'application/json' 
    success: function (data) { 
     $('.result').html(data); 
    } 
}); 

另外,我覺得你可能需要讓你的動作參數List<Connection> connect

+0

這種方法奏效。謝謝! – Thomas 2012-03-12 19:43:18