代码之家  ›  专栏  ›  技术社区  ›  Kiryl

Sitecore中自己的控制器

  •  0
  • Kiryl  · 技术社区  · 1 年前

    我正在Sitecore中开发Speak应用程序,它需要AJAX调用来收集一些数据。 我在Sitecore MVC项目中开发了一个简单的控制器,但无法访问该控制器。

    以下是我所做的尝试:

    注册路由表参考。 https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB0700677

    using System.Web.Mvc;
    using System.Web.Routing;
    using Sitecore.Pipelines;
    
    namespace Sitecore.Test.App.Pipelines
    {
        public class RegisterRoutes
        {
            public virtual void Process(PipelineArgs args)
            {
                RouteTable.Routes.MapRoute("CustomRoute", "some/route/{controller}/{action}/{id}");
            }
        }
    }
    

    附加配置:

    <pipelines>
        <initialize>
            <processor type="Sitecore.Test.App.Pipelines.RegisterRoutes, Sitecore.Test.App"
                               patch:before="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']" />
        </initialize>
    </pipelines>
    

    创建的控制器:

    using System.Web.Mvc;
    
    namespace Sitecore.Test.App.Controllers
    {
        public class ProjectController : Controller
        {
            [HttpGet]
            public JsonResult GetItem(string id)
            {
                string name = "Tom";
    
                return Json(name, JsonRequestBehavior.AllowGet);
            }
        }
    }
    

    当我部署并尝试打开url时 https://sitecoresc.dev.local/some/route/project/getitem/1

    我明白了

    Server Error in '/' Application.
    The controller for path '/some/route/project/getitem/1' was not found or does not implement IController.
    [ControllerCreationException: Could not create controller: 'project'...]
    

    我缺少什么?

    0 回复  |  直到 1 年前