2011-05-08 133 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是最好的工具,因为它总是显示您的引擎盖下是什么。