getJson没有得到任何数据

时间:2014-10-30 06:35:23

标签: c# jquery asp.net-mvc-4

我正在使用mvc4和c#

我有一个控制器动作,如

   [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

2 个答案:

答案 0 :(得分:0)

请试试这个

 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)
        });
});   

希望这有帮助。

答案 1 :(得分:-1)

如果直接从浏览器点击URL会怎样?你有一个带记录的json文件下载吗?

还可以尝试使用:url ='@ Url.Action(“GetChildCategories”,“ControllerName”,new {id = 1})'这是一种生成更新的外发网址的安全方式,以防路由模板更改为将来

如果您只使用:$ .get(...)而不是$ .getJson(...),会发生什么?