【问题标题】:Sitecore - ControllerRendering complaining about Controller "not found or does not implement IController."Sitecore - ControllerRendering 抱怨控制器“未找到或未实现 IController”。
【发布时间】:2016-04-14 13:40:40
【问题描述】:

所以我创建了使用控制器的控制器渲染

Sitecore.Social.Twitter.Client.Mvc.Areas.Social.Controllers.TwitterConnectorController

像这样:

但是当我尝试访问该页面时,我收到一个错误,抱怨控制器不够控制器:

但如果我用对象查看器检查 dll,有问题的控制器确实继承自 IController:

那么,这里发生了什么?为什么我会收到此错误?

编辑:我怀疑错误消息可能只是一种症状,Sitecore 不知何故无法访问 DLL 中的控制器。哪些因素会导致这种行为,我该如何调试它们?

【问题讨论】:

  • 确保您不使用某些需要注册控制器的自定义控制容器反转。
  • @Emanuele,你找到解决方案了吗?我正在调查同样的事情。
  • 如果有人解决了这个问题,请告诉我们。谢谢

标签: c# asp.net-mvc sitecore


【解决方案1】:

这个链接对我有用: http://jockstothecore.com/adventures-in-dependency-injection/

基本上完全限定的控制器名称会使系统出错。我更新了我的使用类名(减去“控制器”一词)和正确的操作,它解决了我的问题。

【讨论】:

  • 终于修好了,浪费了半天时间!
【解决方案2】:

我检查了 TwitterConnectorController,我没有看到 /ajax/sociallogin 和 TwitterConnectorController 之间有任何联系

请搜索 sociallogin 控制器并检查是否继承自 来自 SitecoreController

【讨论】:

  • 嗨,你看不到它,因为这是我自己建立的联系 - 我之前没有截屏,因为这是我有信心的部分,但这里是:i.imgur.com/2i8NRUs.png
  • 你能删除其他渲染并只添加那个 Twitter 控制器吗?
  • 我试过了 - 我现在不再收到错误消息,但似乎什么也没有发生。有什么方法可以检查是否调用了 DLL 中的方法?
【解决方案3】:

当我把当前的项目框架变成

.NET 框架 4.6.1

以前的脚手架也不起作用,它开始起作用了。

【讨论】:

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