示例:前端脚本:
1 <script type="text/javascript"> 2 $(document).ready(function () { 3 $('#send').click(function () { 4 var first = { Id: 1, Name: '张三' }; 5 var second = { Id: 2, Name: '李四' }; 6 7 $.post('@Url.Action("Receive")', { 8 first: first, 9 second: second 10 }, function (data, status) { 11 alert(data); 12 }); 13 }); 14 }); 15 </script>
后台代码:
public class Person { public int Id { get; set; } public string Name { get; set; } }
1 public ActionResult Receive(Person first, Person second) 2 { 3 4 return Content("OK."); 5 }
接收不到数据...请教各位有什么简单方法解决这个问题
$.post的时候别直接 { first: first, second: second },这样试试 JSON.stringify({ first: first, second: second })
而且后台接收两个Person,前台ajax调用可能也会有问题,可改成后台接收List<Person>
Action 参数List为null 。。。这个
@_天光云影: 后台接收List<Person>,前台传的时候也得改,
var arrUsers=new Array(first,second);
$.post的时候传入 JSON.stringify(arrUsers),这样试试
@webaspx:
晕,这样还是不行。
不过,根据你提示的函数JSON.stringify(),我搜到了下面文章
http://juristr.com/blog/2011/08/posting-json-data-to-aspnet-mvc-3-web/
前端用 $.ajax()方法,后台方法定义 Action (Person first, Person second)
这样是行得通的。
@webaspx:
还是非常感谢你的帮助哈
你为什么要往action里传object啊,直接传ID,然后根据Id查不行吗?
这个示例可能不太恰当,后台数据没有Id的,无法查到