2012-03-12 49 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