2014-07-01 78 views
2

我有一個MVC應用程序,我已經安裝了umbraco 6.1.6 nuget package.Now我試圖從視圖中使用Jquery AJAX函數調用控制器。控制器放置在MVC控制器文件夾中,並使用UmbracoApiController繼承。我試圖按照Umbraco API document,但每次我的請求發送它重定向到404頁。我已經嘗試使用從here下載的umbraco 7.1.4,它對我來說工作得很好。任何人都可以爲此提出解決方案。Umbraco AJAX調用不工作

我已經使用請求URL如下: - /一把umbraco /原料藥/ [ControllerName]/[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
    • 你嘗試加入[MemberAuthorize(AllowAll = true)]到API控制器或方法?
  5. 仔細檢查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