2011-05-08 122 views
3

我花了很長時間來看這個,只是看不到有什麼問題。我有以下內容:

$.getJSON(
       '/adminStatus/GetJsonData', 
       { name: $('#textSearch')[0].value }, 
       function (data) { 
        alert("3"); 
//     $('#studentList > div').remove(); 
//     for (s in data) { 
//      alert("4"); 
//      var student = data[s]; 
//      $('#studentList').append('<div>(' + student.StudentId + ') ' + student.FirstName + ' ' + student.LastName + '</div>'); 
//     } 
       } 
      ); 

此代碼在我的控制器中觸發一個操作,並且該操作返回數據。它實際上是從另一個例子代碼:

public JsonResult GetJsonData(string name) 
     { 
      return new JsonResult 
      { 
       Data = (from student in Student.GetStudentDataList() 
         where student.LastName.StartsWith(name) 
         select student).ToArray<Student>() 
      }; 
     } 

我檢查和數據得到填充數據。

但是,返回數據並沒有發生任何事情,當我添加註釋時,我甚至無法看到警報(「3」)。

我是否在做一些非常明顯的錯誤?我想我正在複製一個工作示例,但似乎沒有返回任何東西,並且函數(data){}似乎沒有執行。

任何幫助將不勝感激。

感謝,

+0

你在頁面上發現任何JavaScript錯誤嗎?你是否通過http://jslint.com運行你的代碼來檢查錯誤? – 2011-05-08 14:32:56

回答

11

這將是最好的檢查這有點像Firebug,看看是否有出現任何錯誤。試圖在不知道發生了什麼事情的情況下進行故障排除只會導致更多的挫折感。

一兩件事,我看到一個潛在的問題是,你沒有JsonRequestBehavior.AllowGet集,所以你可能會得到一個服務器錯誤。要看到,如果這是你可以改變你回讀的情況:

var data = (from student in Student.GetStudentDataList() 
      where student.LastName.StartsWith(name) 
      select student).ToArray<Student>(); 

return Json(data, JsonRequestBehavior.AllowGet); 
+0

啊 - 不MVC3有JsonRequestBehavior.AllowGet將是一個問題 – 2011-05-08 15:21:02

1

當調試這類問題,fiddler是最好的工具,因爲它總是顯示您的引擎蓋下是什麼。