【问题标题】:Modify route of API controller to remove "API" from the controller name修改 API 控制器的路由以从控制器名称中删除“API”
【发布时间】:2015-07-24 22:15:24
【问题描述】:

我的User 模型有两个控制器。一种是常规的 MVC 控制器,它处理视图并从Controller 继承。然后我有一个继承自ApiController 的API 控制器。他们的名字分别是UsersControllerUsersApiController。我希望从 API 控制器的 URL 中删除“Api”,以便输入:

www.mywebsite.com/api/Users

而不是:

www.mywebsite.com/api/UsersApi

其中包含一个多余的“api”。

我已经尝试将属性[Route("Users")][Route("api/Users")] 应用于整个控制器,但它们都不起作用,而且它们似乎只是破坏了它。我的WebApiConfig.cs 有默认路由配置。

我该怎么做?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api controller asp.net-web-api2


    【解决方案1】:

    你应该可以使用属性路由。

    [RoutePrefix("api/users")]
    public class UsersApiController : ApiController
    {  
        [Route("")]
        public HttpResponseMessage Get() 
        { 
    
        }
    }
    

    您也应该能够根据操作方法自定义它

    public class UsersApiController : ApiController
    {  
        [Route("api/users")]
        public HttpResponseMessage Get() 
        { 
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2017-06-10
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多