RoutePrefix vs Route 在ASP.NET Web API中,我们可以使用RoutePrefix和Route属性来定义控制器或操作的路由。 RoutePrefix属性用于定义控制器的路由前缀。它可以应用于控制器类,也可以应用于控制器中的操作方法。通过使用RoutePrefix属性,我们可以为相关的控制器或操作提供一个共同的路由前缀。 Route属性用于定义控制器或操作的具体路由。它可以应用于控制器类或操作方法。通过使用Route属性,我们可以为每个控制器或操作指定一个自定义的路由。 使用RoutePrefix和Route属性可以帮助我们更好地组织和管理我们的Web API路由。它们使我们能够以一种更灵活和简洁的方式定义路由规则,并且可以提高代码的可读性和可维护性。 在使用这些属性时,我们可以根据实际需求灵活地组合它们,以满足我们的路由需求。 总结:RoutePrefix用于定义控制器或操作的路由前缀,而Route用于定义具体的路由。它们可以帮助我们更好地组织和管理Web API路由。
RoutePrefix vs Route 在ASP.NET Web API中,我们可以使用RoutePrefix和Route属性来定义控制器或操作的路由。 RoutePrefix属性用于定义控制器的路由前缀。它可以应用于控制器类,也可以应用于控制器中的操作方法。通过使用RoutePrefix属性,我们可以为相关的控制器或操作提供一个共同的路由前缀。 Route属性用于定义控制器或操作的具体路由。它可以应用于控制器类或操作方法。通过使用Route属性,我们可以为每个控制器或操作指定一个自定义的路由。 使用RoutePrefix和Route属性可以帮助我们更好地组织和管理我们的Web API路由。它们使我们能够以一种更灵活和简洁的方式定义路由规则,并且可以提高代码的可读性和可维护性。 在使用这些属性时,我们可以根据实际需求灵活地组合它们,以满足我们的路由需求。 总结:RoutePrefix用于定义控制器或操作的路由前缀,而Route用于定义具体的路由。它们可以帮助我们更好地组织和管理Web API路由。
我知道RoutePrefix
本身不会向路由表中添加路由。在您的操作上,您需要声明一个Route
属性。我很难找到一篇权威的博客/MSDN页面/其他文章来说明为什么默认情况下RoutePrefix
不会向路由表中添加路由。
是否有一篇权威的文章确实包含了这一点,如果有,请让我知道是谁写的。非常感谢。
编辑
为了澄清我的问题
不起作用的例子:
[RoutePrefix("api/Steve")] public class SteveController : ApiController { public int get(){return 1000000;} }
起作用的例子:
[RoutePrefix("api/Steve")] public class SteveController : ApiController { [Route("")] public int get(){return 1000000;} }
上面的情况能够起作用是因为我们明确说明了SteveController
上的get
操作具有一个空的路由。一旦我们这样做,路由就会被添加到RouteTable
中。
第一个情况不起作用,因为仅使用RoutePrefix
不会向路由表中添加任何内容。RoutePrefix
本身不会生成路由。
这似乎是常识,我想找到一个可信的来源,比如官方的Microsoft文档,来说明为什么会这样。