0

私は私の部分的なビューでこれを持っています:

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

HomeController:

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

GetTrainingModulePointsメソッドは、ルートコントローラーディレクトリのHomeControllerにあります。500内部サーバーエラーが発生したため、検出されません。Url.Actionの何が問題になっていますか?

助けてください?ありがとう

4

1 に答える 1

1

正しくURLヘルパーを使用して、コントローラーアクションへのURLを生成しています。ただし、ステータスコード500と404を混同しています。ステータスコード500は、内部サーバーエラーを意味します。このエラーは、たとえば、コントローラーアクション内で例外がスローされた場合に発生する可能性があります。

ZincService.GetUserForIdおよびは、この例外のZincService.TrainingService.GetTrainingModulePoints適切な候補です。

ブラウザでjavascriptデバッグツール(FireBugやChrome開発者ツールバーなど)を使用している場合は、[ネットワーク]タブを調べて、AJAXリクエストの正確なリクエスト/レスポンスを確認できます。応答を確認することで、エラーの理由に関する詳細情報を取得できる場合があります。

于 2012-12-28T09:21:13.243 に答える