我正在使用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 :(得分: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
。