getJSON回调没有被触发

我正在通过研究包括SubSonic和jQuery在内的测试项目来学习asp.net mvc。

我遇到的问题是每次我想要返回的东西多于一个简单的字符串,比如一个Json对象,我会受到阻碍,因为回调似乎没有触发,或者返回失败。

我获取数据库中作业列表的方法:

[AcceptVerbs(HttpVerbs.Get)] public JsonResult GetAllJobs() { var db = new JamesTestDB(); var jobs = from job in db.Jobs select job; return Json(jobs.ToList()); } 

我的JavaScript称之为:

  function updateJobList() { var url = ''; $.getJSON(url, null, function(data, status) { alert("Success!"); }); } 

我使用内联函数和外部函数定义来获取成功和失败的get,post和getJSON。 似乎没有什么工作,但代码肯定是在进行Ajax调用,只是没有触发回调。

这是解决方案!!

所以事实certificate我一年多来一直在做同样的事情:

 public JsonResult SaveData(string userID, string content) { var result = new { Message = "Success!!" }; return Json(result); } 

所以,我开始以同样的方式在我启动的新项目上这样做。 嗯,区别? 第一个是MVC 1.0,我的新版本是MVC 2.0。 那有什么区别? 您必须允许JSON GET请求:

 public JsonResult SaveData(string userID, string content) { var result = new { Message = "Success!!" }; return Json(result, JsonRequestBehavior.AllowGet); } 

如果你想看到错误,jQuery有一个你必须绑定的error handling程序 :

 $("#msg").ajaxError(function(event, request, settings){ $(this).append("
  • Error requesting page " + settings.url + "
  • "); });

    你有没有尝试过:

    $ .getJSON(url,function(data,status){alert(“Success!”);});

    并且,通过执行以下操作检查URL是否正确解析:

    警报(URL);

    在通话之前检查它是否正确。

    然后在Firefox中检查Firebug控制台窗口的响应。

    问题出在我正在回归的地方。 似乎将匿名类型推入Json()似乎会导致它以某种方式陷入困境。 通过定义一个简单的类并将值推送到它的新实例中,我让它正确返回。