前端发起Ajax,MVC中的Action却接收不到参数

问题直接上图

前台发起Ajax,注意A的格式

后台接收方法

这是我们发现,A对象内的B对象的属性竟然没有拿到值,好奇怪的问题,目前我只想到一种解决方案

 $(function () {
            $("#buttonClick").click(function () {
                debugger;
                var A = { B: initData(), C: { Id: 2, Name: 5 } };
                //注意这里
                var x = JSON.stringify(A)//这是JavaScript本身函数
                var c = { str: x }
                //注意这里
                $.post("/Home/Index2Ajax", c, function (data) {
                    alert("成功");
                })
            })
            $("#buttonClick2").click(function () {
                $.post("/Home/Index2Ajax2", null, function (data) {
                    alert("成功");
                })
            })
        })
        function initData() {
            InfoDto = { IdS: 1, NameS: 2 };
            return InfoDto
        }
前端代码
        public ActionResult Index2Ajax(string str)
        {
            var x = Newtonsoft.Json.JsonConvert.DeserializeObject<A>(str);
            return Json(new Object(), JsonRequestBehavior.AllowGet);
        }
后端代码

这样更改一下代码就可以了

原文地址:https://www.cnblogs.com/zk3113/p/6028198.html