【发布时间】:2017-06-10 17:34:35
【问题描述】:
我想知道如果我们在 Web api 控制器中使用与控制器实际名称不同的名称的 RoutePrefix 属性。那么它会起作用吗?
据我所知
[RouterPrefix("quotation")]
public class SaleOrderController : ApiController { ... }
如果我们像上面那样定义RoutePrefix,我们不能通过/quotation 访问它,但我们可以使用saleorder 访问它。
那么RoutePrefix 是为了什么,还是我做错了什么?
【问题讨论】:
-
确保首先启用属性路由
config.MapHttpAttributeRoutes(),然后路由前缀将按预期工作。 asp.net/web-api/overview/web-api-routing-and-actions/… -
它已启用但仍无法正常工作,因为我不想在每个方法上添加路由,因为如果我这样做,我的路由将是
/quotation/getall,这是不正确的。我认为Get应该是/quotation -
您在 getall 方法上使用默认路由
Route("")。但是,如果您要实现属性路由,则必须使用它。它的名字 -
是的,这很完美。这是我缺少的东西。谢谢兄弟!
-
@Nkosi 在 Visual Studio 中如果您创建 Web api 控制器,则 config.MapHttpAttributeRoutes() 会自动添加到 WebApiConfig.cs。
标签: c# asp.net-mvc asp.net-web-api asp.net-mvc-routing attributerouting