J'essaie de créer des routes MVC personnalisées pour mon application sitecore. Je regardais ce lien à SO Here. Alors que j'ai fait la configuration - je ne comprends pas comment lier l'itinéraire à mon contrôleur car mon contrôleur n'a pas le nom "contrôleur" et il ne fait pas partie du dossier du contrôleur. Je la configuration suivanteSitecore MVC Route Configurer
Ma "classe Controller"
namespace project2
{
public class UserApi : ApiController
{
[HttpPost]
public bool Login(ILogin request)
{
//do something
}
}
}
Mon configuration de routage
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 }
);
}
}
Mon Autofac injection de dépendances
AutofacContainerFactory.ContainerBuilder.RegisterType<UserApi>().As<UserApi>().SingleInstance();
Enfin mon Pipeline:
<processor type="Project2.InitRoutes, Project2"
patch:after="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']" />
Ce que je ne comprends pas est
Quand je fais un appel angulaire
mysite.com/api/userapi/login
Comment sera-t acheminer l'appel à mon Classe Userapi?
i obtenir ce type de contrôleur est nul en Autofac usine contrôleur
Qu'est-ce que je suis absent.
public class AutofacControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext context, Type controllerType)
{
IController controller = (IController) DependencyResolver.Current.GetService(controllerType);
return controller
}
}
Merci @ Ayman-barhoum. J'ai essayé ça. Autofac interfère et j'ai toujours Controllertype comme nul. J'ai mis à jour la partie autofact du code. –