修改 API 控制器的路由以从控制器名称中删除 "API"
Modify route of API controller to remove "API" from the controller name
我的 User
模型有两个控制器。一个是常规的 MVC 控制器,它处理视图并继承自 Controller
。然后我有一个继承自 ApiController
的 API 控制器。他们的名字分别是UsersController
和UsersApiController
。我希望从 API 控制器的 URL 中删除 "Api" 以便我可以输入:
www.mywebsite.com/api/Users
而不是:
www.mywebsite.com/api/UsersApi
其中包含多余的 "api".
我已经尝试将属性 [Route("Users")]
和 [Route("api/Users")]
应用于整个控制器,但都不起作用,而且它们似乎只是破坏了它。我的 WebApiConfig.cs
有默认路由配置。
我该怎么做?
您应该可以使用属性路由。
[RoutePrefix("api/users")]
public class UsersApiController : ApiController
{
[Route("")]
public HttpResponseMessage Get()
{
}
}
您也应该能够根据操作方法自定义它
public class UsersApiController : ApiController
{
[Route("api/users")]
public HttpResponseMessage Get()
{
}
}
我的 User
模型有两个控制器。一个是常规的 MVC 控制器,它处理视图并继承自 Controller
。然后我有一个继承自 ApiController
的 API 控制器。他们的名字分别是UsersController
和UsersApiController
。我希望从 API 控制器的 URL 中删除 "Api" 以便我可以输入:
www.mywebsite.com/api/Users
而不是:
www.mywebsite.com/api/UsersApi
其中包含多余的 "api".
我已经尝试将属性 [Route("Users")]
和 [Route("api/Users")]
应用于整个控制器,但都不起作用,而且它们似乎只是破坏了它。我的 WebApiConfig.cs
有默认路由配置。
我该怎么做?
您应该可以使用属性路由。
[RoutePrefix("api/users")]
public class UsersApiController : ApiController
{
[Route("")]
public HttpResponseMessage Get()
{
}
}
您也应该能够根据操作方法自定义它
public class UsersApiController : ApiController
{
[Route("api/users")]
public HttpResponseMessage Get()
{
}
}