RoutePrefix vs Route 在ASP.NET Web API中,我们可以使用RoutePrefix和Route属性来定义控制器或操作的路由。 RoutePrefix属性用于定义控制器的路由前缀。它可以应用于控制器类,也可以应用于控制器中的操作方法。通过使用RoutePrefix属性,我们可以为相关的控制器或操作提供一个共同的路由前缀。 Route属性用于定义控制器或操作的具体路由。它可以应用于控制器类或操作方法。通过使用Route属性,我们可以为每个控制器或操作指定一个自定义的路由。 使用RoutePrefix和Route属性可以帮助我们更好地组织和管理我们的Web API路由。它们使我们能够以一种更灵活和简洁的方式定义路由规则,并且可以提高代码的可读性和可维护性。 在使用这些属性时,我们可以根据实际需求灵活地组合它们,以满足我们的路由需求。 总结:RoutePrefix用于定义控制器或操作的路由前缀,而Route用于定义具体的路由。它们可以帮助我们更好地组织和管理Web API路由。

17 浏览
0 Comments

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文档,来说明为什么会这样。

0