gpt4 book ai didi

c# - WebAPI - 路由

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:43 25 4
gpt4 key购买 nike

我是 WebAPI 的新手,我不了解 WebAPI v2 中的路由是如何工作的。

我创建了简单的测试 Controller :

public class TestController : ApiController
{
public List<string> GetAll()
{
return new List<string>();
}

public string Get(int id)
{
return string.Empty;
}

public string GetSmthByParam1(int param)
{
return string.Empty;
}

public string GetSmthByParam2(int param)
{
return string.Empty;
}

public List<string> GetAllByParam(int param)
{
return new List<string>();
}
}

我想通过以下方式访问每种方法:

/Api/Test/GetAll
/Api/Test/Get/3
/Api/Test/GetSmthByParam1/1
/Api/Test/GetSmthByParam2/1
/Api/Test/GetAllByParam/1

我不知道如何实现它。我将 WebApiConfig.cs 中的路由更改为:

config.Routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });

最佳答案

下面的代码应该适合你,

[RoutePrefix("Test")]
public class TestController : ApiController
{
[Route("GetAll")]
public List<string> GetAll()
{
return new List<string>();
}
[Route("Get")]
public string Get(int id)
{
return string.Empty;
}
[Route("GetSmthByParam1/{param}")]
public string GetSmthByParam1(int param)
{
return string.Empty;
}
[Route("GetSmthByParam2/{param}")]
public string GetSmthByParam2(int param)
{
return string.Empty;
}
[Route("GetSmthByParam/{param}")]
public List<string> GetAllByParam(int param)
{
return new List<string>();
}
}

你的配置应该是 config.MapHttpAttributeRoutes();

关于c# - WebAPI - 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com