Controller:
public JsonResult Cars(int id) { JsonResult res = new JsonResult(); Cars entity = car.Cars.SingleOrDefault(a => a.CarNo == id); res.Data = entity; return Json(res, JsonRequestBehavior.AllowGet); }
View:
<script type="text/javascript"> $("button").click(function () { $.getJSON("/Compare/Cars?id=7", null,function (res) { $("#name").html(res.CarNo); }); }); </script> <button>获得 JSON 数据</button> <div id= "name"></div>
不知道为什么,获取不到json,求大神解答一下
从给出的代码看应该是按钮单击事件就没绑定上,将按钮单击事件写在$(function(){})里面试下,
$(function(){ $("button").click(function () { $.getJSON("/Compare/Cars?id=7", null,function (res) { $("#name").html(res.CarNo); }); }); })
public JsonResult Cars(int id) { JsonResult res = new JsonResult(); Cars entity = car.Cars.SingleOrDefault(a => a.CarNo == id); //res.Data = entity; return Json(entity, JsonRequestBehavior.AllowGet); }
或者
$("#name").html(res.Data.CarNo);
谷歌浏览器按F12 选择网络请求,查看请求和响应报文,确认问题位置,再想 解决办法.
F12查看请求,
1、确实是否发出了请求;是,跳到2;不是,请检查事件绑定
2、查看请求是否返回了必要的数据;是,跳到3;否,检查请求地址或者后台代码;
3、查看数据层级,是否和你写的res.CarNo想匹配;否,修改你的前端JS代码。
应该是事件没绑定上,需要用$(function(){...});包裹buttion click事件绑定
看你Controller 中的实体,你在序列化实体前台应该是 res.data.CarNo。你应该看具体序列化的数据