2015-10-13 67 views
1

我更新了sitecore 7.0到7.5,并且有一些由MVC3创建的控制器渲染项目。MVC中的Sitecore错误路线

当我在7.5执行它们,它显示了一个错误:

Could not create controller: 'Components'. The current route url is: 'api/sitecore/{controller}/{action}'. `Message: The controller for path '/api/sitecore/Components/Navigation' was not found or does not implement IController.

控制器的名称是Components和行动是Navigation

我在Sitecore的7.0完美工作。 我该如何解决这个问题?

+0

你有一个名为'ComponentsController'的控制器,它是否继承自Controller? – DavidG

+0

不,我没有。我通过传递'@ Url.Action(“Navigation”,“Components”)使用ajax调用post请求' – Jay

+0

我不知道它是否相关,但Sitecore 7.5不支持MVC3。它需要MVC 5.1(请参阅兼容性表https://kb.sitecore.net/articles/087164)。此外,您可能需要遵循约定并将组件重命名为“ComponentsController”(同时仍使用“/ api/sitecore/components/navigation”路径)。 –

回答

1

是,尝试添加“控制器”到您的“组成部分”,如“componentsController”,你还可以在Sitecore.Speak.Mvc.config文件中/App_Config/Includes/

禁用CommandRoutePrefix另外,如果你想要的值传递到特定的位置,你可以使用静态url而不是@Url.Action(...)