【问题标题】:The controller for path '/api/sitecore/TestForms/TestFormsAPI' was not found or does not implement IController找不到路径“/api/sitecore/TestForms/TestFormsAPI”的控制器或未实现 IController
【发布时间】:2017-07-13 09:17:54
【问题描述】:

我正在创建一个控制器并继承 GlassController,我正在尝试使用 ajax 调用控制器操作方法,并且请求的 URL 是“/api/sitecore/TestForms/TestFormsAPI”,它会抛出一个异常说“路径的控制器”/未找到 api/sitecore/TestForms/TestFormsAPI' 或未实现 IController。"

附上我的代码和异常的屏幕截图:

谁能提出可能是什么问题?

【问题讨论】:

  • 请在 sitecore.stackexchange.com 上发布您的问题

标签: sitecore8 glass-mapper


【解决方案1】:

Sitecore 有不同的路由方式。这可能与默认的 Sitecore 客户端路由冲突。使用自定义路由实现这一点。请点击此链接 - https://kb.sitecore.net/articles/700677

我还建议改用 Route 属性,这就是它可以做到的方式。 (以下代码我没有测试过)

 [RoutePrefix("api/Custom")]
public class MyCustomController : ApiController
{
    ICustomRepository _customRepository;
    public MyCustomController(ICustomRepository  _customRepository
    {
        _customRepository= customRepository
    }

    [Route("GetCustomMethod")]
    [HttpPost]
    public IHttpActionResult GetCustomMethod()
    {           
    ......
    ......            
        return Ok(results);
    }
}

【讨论】:

    【解决方案2】:

    在桑迪的回答 (https://kb.sitecore.net/articles/700677) 中的文章中注册了自定义路由,但是由于我在指定控制器名称时包含“控制器”,所以它一直崩溃并出现相同的错误,删除它修复了问题(请参阅 @987654322 @)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 2013-05-31
      • 1970-01-01
      • 2016-11-26
      • 2020-07-20
      相关资源
      最近更新 更多