根据NickW的建议,我可以使用
things = JSON.stringify({ 'things': things });下面的完整代码来使其工作。
$(document).ready(function () { var things = [ { id: 1, color: 'yellow' }, { id: 2, color: 'blue' }, { id: 3, color: 'red' } ]; things = JSON.stringify({ 'things': things }); $.ajax({ contentType: 'application/json; charset=utf-8', dataType: 'json', type: 'POST', url: '/Home/PassThings', data: things, success: function () {$('#result').html('"PassThings()" successfully called.'); }, failure: function (response) {$('#result').html(response); } }); });public void PassThings(List<Thing> things){ var t = things;}public class Thing{ public int Id { get; set; } public string Color { get; set; }}
我从中学到了两件事:
在ajax()函数中,绝对需要contentType和dataType设置。如果他们失踪了,那是行不通的。经过反复试验,我发现了这一点。
要将对象数组传递给MVC控制器方法,只需使用JSON.stringify({‘things’:Things})格式。
I hope this helps someone else!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)