【发布时间】:2022-01-26 01:42:02
【问题描述】:
我有一个名为 ConnectionManagerCategoriesController 的关联控制器。它有两个 Get 方法。一种获取 ConnectionManager 的所有类别,另一种仅根据名称检索 ConnectionManager 的一个类别。我有一个帖子来创建一个新类别,我正在尝试为 LinkGenerator 生成一个 uri。但是,在创建 URI 时,它使用 GetConnectionManagerCategories 方法而不是 GetConnectionManagerCategory。我不知道为什么或如何做不同的事情。:
[Route("api/connectionmanagers/{connectionManagerID:int}/categories")]
[ApiController]
public class ConnectionManagerCategoriesController : ControllerBase
{
private readonly LinkGenerator _linkGenerator;
[HttpGet]
public async Task<ActionResult<IEnumerable<ConnectionManagerModel>>> GetConnectionManagerCategoriesAsync(int connectionManagerID){}
[HttpGet("{categoryName}", Name = "GetConnectionManagerCategoryAsync")]
public async Task<ActionResult<ConnectionCategoryModel>> GetConnectionManagerCategoryAsync(int connectionManagerID, string categoryName){}
[HttpPost]
public async Task<ActionResult<ConnectionCategoryModel>> AddConnectionCategoryAsync(int connectionManagerID, string categoryName, [FromHeader(Name = "x-requestid")] string requestId)
{
var url = _linkGenerator.GetUriByRouteValues(HttpContext,
"GetConnectionManagerCategoryAsync",
values: new { connectionManagerID, categoryName = commandResult.CategoryName });
return Created(url, commandResult);
}
它将以下 uri 返回给 Swagger:'http://localhost:6704/api/connectionmanagers/1/categories?categoryName=Almost'
但是,当我在代码中记录 uri 时,它是:http://localhost:6704/api/connectionmanagers/1/categories/newvalueadded
这可能吗?
【问题讨论】:
标签: asp.net-core asp.net-web-api