前端发起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); }
这样更改一下代码就可以了