我理解 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文档,解释其中的原因。
RoutePrefix
的定义基本上已经解释了为什么它只适用于路由。它用于存储控制器中路由之间的公共
前缀。 - Nkosi