【问题标题】:Umbraco AJAX call not workingUmbraco AJAX 调用不起作用
【发布时间】:2014-07-01 10:44:16
【问题描述】:

我有一个 MVC 应用程序,我在其中安装了 umbraco 6.1.6 nuget 包。现在我正在尝试使用 Jquery AJAX 函数从视图中调用控制器。控制器放置在 MVC 控制器文件夹中,并与 UmbracoApiController 一起继承。我曾尝试关注Umbraco API document,但每次发送我的请求时,它都会重定向到 404 页面。我已经尝试过使用从here 下载的 umbraco 7.1.4,它对我来说很好用。任何人都可以为此提出解决方案。

我使用的请求网址如下:- /Umbraco/Api/[ControllerName]/[ActionName],我也尝试过 /Umbraco/[YourAreaName]/[YourControllerName] ,但是这对我也不起作用。

【问题讨论】:

  • 您能否发布您的控制器的代码,以便我们查看它是否具有指定的 HTTP 动词的正确属性?此外,路由区分大小写,因此您需要尝试 /umbraco/api/ControllerName/MethodName(注意前两个路径中的小写)。

标签: ajax asp.net-mvc umbraco umbraco6


【解决方案1】:

检查不同的东西:

  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。你可能打错名字了。控制器是没有“控制器”的全称。尝试下面的代码以找到确切的 url。

下面的代码来自我在仪表板中为最终用户使用的用户控件。我想将其转换为 Razor 宏很容易。如果这没有返回任何东西,那么您在上面的列表中做错了。

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

【讨论】:

  • Heather Floyd 指出UrlHelperSystem.Web.Mvc 命名空间中。
  • 真的!这是一个标准的 Asp.net MVC 助手。当您在剃须刀中执行 @Url.Action() 时,这是相同的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 2015-03-06
  • 2018-09-28
  • 2013-05-24
  • 2013-10-08
  • 2014-07-12
相关资源
最近更新 更多