我想为我的sitecore应用程序创建自定义MVC路由。我正在查看SO Here的链接。 虽然我做了配置 - 我不明白如何将路由链接到我的控制器,因为我的控制器没有名称“控制器”,它不是控制器文件夹的一部分。 我有以下设置Sitecore MVC路由设置
我的 “控制器类”
namespace project2
{
public class UserApi : ApiController
{
[HttpPost]
public bool Login(ILogin request)
{
//do something
}
}
}
我的路由的设置
public class InitRoutes : Sitecore.Mvc.Pipelines.Loader.InitializeRoutes
{
public override void Process(PipelineArgs args)
{
RegisterRoutes(RouteTable.Routes);
}
protected virtual void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Accounts",
"authapi/{controller}/{action}/{id}",
new { id = UrlParameter.Optional }
);
}
}
我Autofac依赖注入
AutofacContainerFactory.ContainerBuilder.RegisterType<UserApi>().As<UserApi>().SingleInstance();
最后我的管道:
<processor type="Project2.InitRoutes, Project2"
patch:after="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']" />
什么,我不明白的是
当我提出从角
mysite.com/api/userapi/login
通话它将如何将呼叫路由到我Userapi类?
我明白了控制器类型为空 in Autofac Controller factory
我在想什么。
public class AutofacControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext context, Type controllerType)
{
IController controller = (IController) DependencyResolver.Current.GetService(controllerType);
return controller
}
}
谢谢@ Ayman-barhoum。我试过这个。 Autofac干扰,我总是得到Controllertype为空。我已经更新了代码的autofact部分。 –