我正在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'...]
我缺少什么?