我想爲我的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部分。 –