C# CastleWindsor在asp.net mvc中不使用路由
我在ASP.NET MVC中有一个Web应用程序,使用CastleWindsor的依赖项注入,但当我添加路由属性时,应用程序返回以下错误“控制器未找到” 我的管制员C# CastleWindsor在asp.net mvc中不使用路由,c#,asp.net,asp.net-mvc,asp.net-mvc-4,castle-windsor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Castle Windsor,我在ASP.NET MVC中有一个Web应用程序,使用CastleWindsor的依赖项注入,但当我添加路由属性时,应用程序返回以下错误“控制器未找到” 我的管制员 public class ControllerInstaller : IWindsorInstaller { public void Install(IWindsorContainer container, IConfigurationStore store) { container.Register
public class ControllerInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.BasedOn<IController>()
.LifestyleTransient());
}
}
当我访问路径“/espetaculos”时,这里是错误
城堡只需要控制器的完整路径
编辑
我的RouteConfig课程
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
//routes.MapMvcAttributeRoutes();
//AreaRegistration.RegisterAllAreas();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Plateia.Controllers" }
);
}
}
正如我所怀疑的,您显然没有在MVC中启用属性路由。如果不这样做,在控制器和操作上添加
[Route]
属性将无效
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
// This line is required in order to scan
// for [Route] attribute in your controllers
routes.MapMvcAttributeRoutes();
//AreaRegistration.RegisterAllAreas();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Plateia.Controllers" }
);
}
}
正如我所怀疑的,您显然没有在MVC中启用属性路由。如果不这样做,在控制器和操作上添加
[Route]
属性将无效
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
// This line is required in order to scan
// for [Route] attribute in your controllers
routes.MapMvcAttributeRoutes();
//AreaRegistration.RegisterAllAreas();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Plateia.Controllers" }
);
}
}
这可能是一个路由问题,与温莎城堡无关。当您使用“espetaculos”路径时,您希望调用哪个控制器?您是否有名为“espetaculos”的控制器?请发布您的路由配置。当您删除Castle、向控制器添加默认构造函数并让MVC创建控制器时会发生什么?结果是一样的还是真的有效?@NightOwl888项目中唯一的路由配置是属性route。@Steven,正常工作这可能是路由问题,与castle windsor无关。当您使用“espetaculos”路径时,您希望调用哪个控制器?您是否有名为“espetaculos”的控制器?请发布您的路由配置。当您删除Castle、向控制器添加默认构造函数并让MVC创建控制器时会发生什么?结果是一样的还是真的有效?@NightOwl888我在项目中唯一的路由配置是属性路由。@Steven,正常工作谢谢!它的工作!但是现在我有了“mvcapapplication.container”,谢谢!它的工作!但是现在我有了“mvcapapplication.container”null