1

我必须在大学的一个项目中实施某种实时搜索。我有以下代码:MVC 动作:

[Authorize]  
[AcceptVerbs(HttpVerbs.Get)]  
[InitializeSimpleMembership]
public JsonResult Search(string term)  
{  
    var data = ... // get matching item  
    return Json(data, JsonRequestBehavior.AllowGet);  
}  

视图中的脚本:

$(document).ready(function() {  
    $("#searchText").keyup(function() {  
        $.getJSON('/Search/Search', { "term": $(this).val() },  function(result) {   
            alert(result);    
            $("#searchText").val(result.d);  
        });  
    });  
});

控制器动作被调用并返回匹配的对象,但 javascript 函数从未被调用,没有警报框,什么都没有。可以做些什么来完成这项工作?

4

1 回答 1

3

您的数据的 JSON 序列化可能存在问题。如果您尝试直接序列化可能包含循环引用的 EF 域模型,则通常会发生这种情况……正确的方法当然是使用视图模型。

为了跟踪问题使用FireBug并查看Network选项卡以查看 AJAX 调用的确切请求/响应。在那里,您将能够看到服务器返回的响应,其中将包含错误消息。

于 2013-01-27T14:29:09.030 回答