1

誰かがこれがどのように機能するかを助けたり説明したりできますか? 私は私の見解で持っています:

 <script type="text/javascript">
   var jqxhr = $.getJSON("<%= Url.Action("GetTrainingModulePoints" , "Home") %>", function (json) {
    console.log(json);
    });
 </script> 

GetTrainingModulePoints は、interactiontype の値と points の値をそれぞれ含む 4 行を返す必要があります。

コンソール ログに [object object] が表示されますか? 変数 json の内容を確認するにはどうすればよいですか?

http://imageshack.us/photo/my-images/542/firebug.png/

ありがとう

4

1 に答える 1

2

Network tab in FireBugまたは類似の JavaScript デバッグ ツールを参照してください。そこに AJAX リクエストが表示されます。あとは、リクエストを展開してレスポンスを確認するだけです。

たとえば、サンプル AJAX 要求の FireBug でどのように見えるかを次に示します。

ここに画像の説明を入力

タブをクリックするJSONと、プロパティを展開/折りたたむことができる JSON オブジェクトとしてフォーマットされた出力が表示されます。

非常に奇妙な理由で、Web ブラウザーで JavaScript デバッグ ツールを使用できない場合 (どのように Web アプリケーションを開発するのかさえわかりませんが、...)、JSON.stringify最新のブラウザーに組み込まれている方法を使用できます。

var jqxhr = $.getJSON("<%= Url.Action("GetTrainingModulePoints" , "Home") %>", function (json) {
    alert(JSON.stringify(json));
});

JSON.stringifyまた、メソッドがネイティブに組み込まれていない最新のブラウザーを使用していない場合でも、 json2.jsスクリプトをページに参​​照できます。


アップデート:

{"success":true}OK、ストアドプロシージャから行を取得することを期待していたのに、取得しているという事実から混乱が生じているようです。私はあなたの に答えたので、これを知っていますprevious question

コントローラーのアクションは次のようになります。

[HttpGet]
public JsonResult GetTrainingModulePoints()
{
    var currentUser = ZincService.GetUserForId(CurrentUser.UserId);
    ZincService.TrainingService.GetTrainingModulePoints(currentUser.UserId);
    return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}

このコントローラ アクションでわかるように、常に を返しsuccess = trueます。ストアド プロシージャから結果を返したい場合は、次のようにします。

[HttpGet]
public JsonResult GetTrainingModulePoints()
{
    var currentUser = ZincService.GetUserForId(CurrentUser.UserId);
    var modulePoints = ZincService.TrainingService.GetTrainingModulePoints(currentUser.UserId);
    return Json(
        new { 
            success = true, 
            modulePoints = modulePoints 
        }, 
        JsonRequestBehavior.AllowGet
    );
}

ここでは、TrainingService.GetTrainingModulePointsメソッドが実際に何らかのオブジェクトを返すと想定しています。そうでない場合は、これらのメソッドが何をしているか、どのように出力を取得するかを説明する必要があります。

于 2012-12-28T10:00:20.493 に答える