not ninjectwebcommon mvc added asp.net-mvc asp.net-mvc-2 ninject

asp.net-mvc - ninjectwebcommon - ninject in mvc 5



Error de Ninject: el IControllerFactory ''Ninject.Web.Mvc.NinjectControllerFactory'' no devolvió un controlador para el nombre ''Productos'' (2)

Actualice a la última Ninject.Web.Mvc y elimine esta línea:

RegisterAllControllersIn(Assembly.GetExecutingAssembly());

El registro ya no es necesario.

Obtengo la siguiente pantalla amarilla de la muerte "The IControllerFactory ''Ninject.Web.Mvc.NinjectControllerFactory'' no devolvió un controlador para el nombre ''Productos''." ¿Por qué? Aquí está mi configuración

Actualización Esta configuración funciona en mi computadora pero no en la computadora de mi compañero de trabajo aunque nuestras computadoras tengan el mismo código y configuración.

Código

public class MvcApplication : NinjectHttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Products", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } protected override void OnApplicationStarted() { RegisterRoutes(RouteTable.Routes); RegisterAllControllersIn(Assembly.GetExecutingAssembly()); } protected override IKernel CreateKernel() { var modules = new INinjectModule[] { new WebModule() }; return new StandardKernel(modules); } } public class WebModule : NinjectModule { public override void Load() { Bind<IAuthoringRepository>() .ToProvider(new AuthoringProvider()) .InSingletonScope(); Bind<ICatalogEntity>() .ToProvider(new ProductProvider()) .InSingletonScope(); Bind<TargetData>() .ToProvider(new TargetDataProvider()).InSingletonScope(); } } public class AuthoringProvider : Provider<IAuthoringRepository> { protected override IAuthoringRepository CreateInstance(IContext context) { WindowsIdentity identity = WindowsIdentity.GetCurrent(); IAuthoringRepository result = RepositoryFactory.CreateAuthoringRepository(identity); return result; } } public class TargetDataProvider : Provider<TargetData> { protected override TargetData CreateInstance(IContext context) { return new TargetData { Language = Language.En, Province = Province.ON }; } } public class ProductProvider : Provider<Product> { protected override Product CreateInstance(IContext context) { return new Product(); } }

Más sobre el error IControllerFactory ''Ninject.Web.Mvc.NinjectControllerFactory'' no devolvió un controlador para el nombre ''Productos''. Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de la excepción:

System.InvalidOperationException: IControllerFactory ''Ninject.Web.Mvc.NinjectControllerFactory'' no devolvió un controlador para el nombre ''Productos''.

Error de fuente:

Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de pila de excepción a continuación.

Stack Trace:

[InvalidOperationException: The IControllerFactory ''Ninject.Web.Mvc.NinjectControllerFactory'' did not return a controller for the name ''Products''.] System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +365 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +160 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +80 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +45 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8837208 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184


prueba esto:

routes.MapRoute(null, "", new { controller = "Products", action = "Index", } );

y asegúrese de tener la acción correcta llamada