【发布时间】:2017-06-29 16:44:05
【问题描述】:
我正在尝试为我的 sitecore 应用程序创建自定义 MVC 路由。我在 SOHere 上查看此链接。 虽然我已经进行了配置 - 我不明白如何将路由链接到我的控制器,因为我的控制器没有名称“控制器”并且它不是控制器文件夹的一部分。 我有以下设置
我的“控制器类”
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 类?
我知道 Autofac 控制器工厂中的 控制器类型为 null
我错过了什么。
public class AutofacControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext context, Type controllerType)
{
IController controller = (IController) DependencyResolver.Current.GetService(controllerType);
return controller
}
}
【问题讨论】:
标签: model-view-controller routes angular-ui-router sitecore autofac