我正在使用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
。
答案 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(...),会发生什么?