2014-07-01 79 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