2009-09-23 4 views
6

私はSubSonicとjQueryを含むテストプロジェクトに取り組んでasp.net mvcを学んでいます。getJSONコールバックが発火しない

私が遭遇している問題は、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 = '<%= Url.Action("GetAllJobs", "Home") %>'; 

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

私は両方を使用してGET、POSTとgetJSONで周りプレイしました成功と失敗のインライン関数定義と外部関数定義。何も動作していないようですが、コードはAjaxコールを確実に作成しています。コールバックを起動しないだけです。

+0

これは、相互ドメインのgetJSON(つまりJSONP)または同じドメインですか? – seth

答えて

0

jQueryのはあなたがエラーを表示したい場合はバインドする必要がありerror handlerがあります

$("#msg").ajaxError(function(event, request, settings){ 
    $(this).append("<li>Error requesting page " + settings.url + "</li>"); 
}); 
0

あなたが試してみました:

$ .getJSON(URL、機能(データ、ステータス){アラートを( "成功!"); });

も、実行して正しく解決されたURLを確認してください。

警告(URL)を、

これが正しいかどうかを確認する前に呼び出してください。

FirefoxのFirebugのコンソールウィンドウで応答を確認します。

0

問題は私が戻ってくるもののどこかにあります。匿名の型をJson()にプッシュすると、何とかそれが乱れているようです。単純なクラスを定義し、値を新しいインスタンスにプッシュすることで、正しく戻すことができました。

12

ここに解決策があります!

は、だから、私は一年以上の正確な同じようにやっていたが判明:

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

    return Json(result); 
} 

だから、私は私が起動し、新しいプロジェクトにそれを同じ方法で行うことを始めました。まあ、違いは?最初のものはMVC 1.0で、もう1つはMVC 2.0です。違いは何ですか?

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

    return Json(result, JsonRequestBehavior.AllowGet); 
} 
関連する問題