如何配置直接控制器的路由路径而不是获取方法名称

问题描述 投票:0回答:1

Code img

Config img

这是一个在 .NET 4.8.1 上运行的 C# ASP.NET Web API 程序。

我尝试过省略

ActionName
,并且尝试了一种名为
Get()
的方法,但它不起作用。

我想通过类似的方式直接访问它

get api/user?userCode=

路线配置:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

控制器:

public class UserController : ApiController
{
    [HttpGet, ActionName("Get")]
    public object GetUserInfo(string userCode)
    {
        return new { userCode, userPwd = "123" };
    }
}
c# asp.net asp.net-web-api2
1个回答
0
投票

最终我找到了这个解决方案。通过使用 Route 属性,您可以为单个控制器自定义路由。前提是启用配置

config.MapHttpAttributeRoutes();
[RoutePrefix("api/user")]
public class UserController : ApiController
{
    [HttpGet]
    [Route("")]
    public object GetUserInfo(string userCode)
    {
        return new { userCode, userPwd = "123" };
    }
}

Successful ScreenShot Img

© www.soinside.com 2019 - 2024. All rights reserved.