的getJSON没有得到任何数据
我与mvc4和C#的工作的getJSON没有得到任何数据
我有一个控制器动作一样,
[HttpGet]
public JsonResult GetChildCategories(int id)
{
Category cat = new Category(id);
List<Category> child = new Categories().ToList(cat); //get two list items when jquery calling
return Json(child, JsonRequestBehavior.AllowGet);
}
,我尝试使用jQuery来调用这些动作,
$(document).ready(function() {
var url = '/Add/GetChildCategories/1';
$.getJSON(url, function (data) {
alert(data); //alert is not working
$.each(data, function (key, val) {
alert(key); //alert is not working
});
});
});
在调用这些时,列表child
包含两项,但该值不在data
中。
如果您直接从浏览器中打开URL,会发生什么情况?你是否得到一个带有记录的json文件下载?
此外,请尝试使用:url ='@ Url.Action(“GetChildCategories”,“ControllerName”,new {id = 1})',它是一种安全的方式来生成更新的输出URL以防您的路由模板发生变化在未来。
发生了什么,如果您只使用$ .get(...)而不是$ .getJson(...)?
@shyama'当命中控制器动作时没有错误'..你检查了在控制器中有一个断点,你的客户端调用已经到达控制器,但无法在客户端上呈现? – 2014-10-30 06:51:43
如果是的话,因为'超出递归限制'说,我想应该有一些深层嵌套在你的对象发生。尝试点击浏览器中的URL并查看是否可以使用记录下载JSON文件.. – 2014-10-30 06:54:19
直接从浏览器中打开URL,并且url ='@ Url.Action(“GetChildCategories”,“ControllerName”,new {id = 1}) ':它显示错误超过了RecursionLimit。 – shyama 2014-10-30 06:54:28
请试试这个
public ActionResult GetChildCategories(int id) {
Category cat = new Category(id);
List<Category> child = new Categories().ToList(cat);
return JsonConvert.DeserializeObject<List<Category>>(child);
}
或 试着改变你的JS功能
$(document).ready(function() {
$.ajax({
url: '{BaseURL}/Add/GetChildCategories/1,
type: 'GET'
}).done(function (data) {
var jsonData= JSON.parse(data);
alert(jsonData)
});
});
希望这有助于。
你的GetChildCategories被调用吗? – vallabha 2014-10-30 06:39:05
@vallabha:是的,它被调用,并在列表中有值 – shyama 2014-10-30 06:39:53
如果你直接从浏览器中打开URL会发生什么?你是否得到一个带有记录的json文件下载?也尝试使用:url ='@ Url.Action(“GetChildCategories”,“ControllerName”,new {id = 1})' – 2014-10-30 06:40:21