Доступ к Url.Action в корневом контроллере проекта

У меня это в моем частичном представлении:

<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?

пожалуйста помоги? благодаря

0
добавлено отредактировано
Просмотры: 1
nl ja de
я, но я не мудрее, у него есть эта ошибка в строке, указывающей GET GetTrainingModulePoints в ошибке огня
добавлено автор charlie_cat, источник
Большое спасибо, я нашел проблему, она не может найти хранимую процедуру с тем же именем :)
добавлено автор charlie_cat, источник
Я думаю, что вы вводите в заблуждение HttpStatuscodes: HTTP 500 является внутренней ошибкой (например, необработанным исключением в вашем коде). HTTP 404 будет «NotFound». Возможно, вы можете использовать Firebug или аналогичный инструмент для просмотра запросов/ответов и получения дополнительной информации об ошибках (или добавить Eventhandler для ошибок в Globla.asax)
добавлено автор Bernhard Kircher, источник
Обычно, когда вы щелкаете в запросе с ошибкой в ​​Firebug, вы должны увидеть запрос/ответы. Если ошибка возникает на вашей локальной машине, вы должны увидеть информацию в ответе. В качестве альтернативы вы можете использовать фреймворк вроде elmah ( code.google.com/p/elmah ) для регистрации ошибок. Вы также можете просто добавить попытку/уловить код, вызывающий ошибку, только для того, чтобы знать, или добавить метод void Application_Error (object sender, EventArgs e) в вас global.asax и adda breakpoint для получения Дополнительная информация - см. ( msdn.microsoft.com /en-us/library/24395wz3%28v=vs.100%29.asp‌ х )
добавлено автор Bernhard Kircher, источник

1 ответы

Вы правильно используете хелпер Url для генерации URL-адреса для действия контроллера. Но вы вводите код состояния 500 с кодом 404. Код состояния 500 означает ошибку внутреннего сервера. Эта ошибка может быть вызвана, например, если в действие вашего контроллера выбрано исключение.

ZincService.GetUserForId и ZincService.TrainingService.GetTrainingModulePoints являются хорошими кандидатами для этого исключения.

Если вы используете инструмент отладки JavaScript в своем браузере (например, панель инструментов разработчика FireBug или Chrome), вы можете просмотреть вкладку «Сеть», где вы увидите точный запрос/ответ для запроса AJAX. Просмотрев ответ, вы можете получить дополнительную информацию о причине ошибки.

1
добавлено
добавлено автор charlie_cat, источник
я нашел проблему, спасибо вам всем очень много! он говорит, что не может найти хранимую процедуру с этим именем :)
добавлено автор charlie_cat, источник
Хорошо, теперь разверните запрос (используя знак + рядом с ним и посмотрите на часть ответа). Или просто поместите контрольную точку внутри действия вашего контроллера и запустите приложение в режиме отладки. Когда действие контроллера будет удалено, вы сможете увидеть исключение.
добавлено автор Darin Dimitrov, источник