2014-07-01 6 views
2

MVC 애플리케이션이 있습니다. 여기에는 umbraco 6.1.6 nuget package.Now가 있는데, Jquery AJAX 기능을 사용하여 뷰에서 컨트롤러를 호출하려고합니다. 컨트롤러는 MVC 컨트롤러 폴더에 있으며 UmbracoApiController로 상속됩니다. 나는 Umbraco API document을 따르려고 노력했지만, 요청이있을 때마다 404 페이지로 리디렉션됩니다. 나는 umbumbco를 사용하여 같은 것을 시도했다. 7.1.4는 here에서 다운로드되었으며, 나에게 잘 돌아 간다. 누구든지이 문제에 대한 해결책을 제시 할 수 있습니까?Umbraco AJAX 호출이 작동하지 않습니다.

다음과 같이 내가 사용한 요청 URL은 다음과 같습니다 - /Umbraco/API/[컨트롤러 명]/[ActionName], 나는 또한 시도/Umbraco/[YourAreaName]/[YourControllerName,하지만 너무 아무튼 ' 나를 위해 일한다.

+0

컨트롤러의 코드를 게시하여 지정된 HTTP 동사에 대한 올바른 속성이 있는지 확인할 수 있습니까? 또한 경로는 대소 문자를 구분하므로/umbraco/api/ControllerName/MethodName (처음 두 경로는 소문자)을 사용해야합니다. –

답변

2

확인 다른 일 :

  1. 재부팅 사이트 (Web.config의 접촉)
  2. 당신이 코드를 빌드 했습니까? app_code에 넣으면 자동으로 선택됩니다. 그렇지 않으면 DLL이 bin 디렉토리에 있어야합니다.
  3. /App_Data/Logs의 로그 파일은 무엇을 말합니까?
    당신은 호출하여 자신의 로그를 삽입 할 수 있습니다 LogHelper.Info<myclass>("some message")
  4. 당신은 정말 정말 당신이 문서에서 뭔가를 간과하지 않은 정말 있는지?
    • UmbracoApiController
    • 당신이 API를 컨트롤러 또는 방법에 [MemberAuthorize(AllowAll = true)]을 추가하는 시도가 확실 컨트롤러가 상속입니까?
  5. URL을 다시 확인하십시오. 당신은 아마도 그 이름을 잘못 입력했을 것입니다. 컨트롤러는 "컨트롤러"가없는 완전한 이름입니다. 정확한 URL을 찾으려면 아래 코드를 시도하십시오.

아래 코드는 최종 사용자를 위해 대시 보드에서 사용한 usercontrol에서 가져온 것입니다. Razor 매크로로 쉽게 변환 할 수 있습니다. 이것이 물건을 돌려 보내지 않으면, 당신은 위의 목록에서 무엇인가 잘못했다.

var requestHandler = HttpContext.Current.Request.RequestContext; 
var urlHelper = new UrlHelper(requestHandler); 
var actionlink = Umbraco.Web.UrlHelperExtensions.GetUmbracoApiService<MyApiController>(urlHelper, "MyMethodName"); 
+0

[Heather Floyd] (http://stackoverflow.com/users/3841490/hfloyd)는'UrlHelper'가'System.Web.Mvc' 네임 스페이스에 있음을 지적합니다. – Chris

+0

사실! 이것은 표준 Asp.net MVC 도우미입니다. 면도기에서 @ Url.Action()을 할 때도 마찬가지입니다. – dampee

관련 문제