0

我的部分观点是:

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

家庭控制器:

[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 开发人员工具栏),您可以检查 Network 选项卡,您将在其中看到 AJAX 请求的确切请求/响应。通过查看响应,您可能会获得有关错误原因的更多信息。

于 2012-12-28T09:21:13.243 回答