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 に答える