Net 6 API 控制器路由 - 区分大小写行为

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

我有以下 API 控制器

[ApiController]
[Route("api/[controller]")]
public class SubContractsController: ControllerBase
{
    private readonly ISubContractsRepository subContractsRepository;

    public SubContractsController(ISubContractsRepository subContractsRepository)
    {
        this.subContractsRepository = subContractsRepository;
    }

    [HttpGet]
    public  async Task  <ActionResult<IEnumerable<SubContract>>> GetSubContracts()
    {
        try....

我没有通过 https://localhost:7059/api/subcontracts (全小写)得到结果,因为下面的三个 URL 都给了我想要的结果。请注意,以下 URL 中 S 和 C 的大写字母不同。

https://localhost:7059/api/Subcontracts https://localhost:7059/api/subContracts https://localhost:7059/api/SubContracts

路由是否区分大小写,如果是的话,为什么它适用于除一个组合之外的所有组合? 如何禁用区分大小写的性质?

asp.net-core routes asp.net-apicontroller
2个回答
0
投票

文本匹配不区分大小写并且基于解码的 URL 路径的表示。

阅读this,了解更多有关路线的信息。

我没有得到 https://localhost:7059/api/subcontracts 的结果(完整 小写)

再试一次,也许有问题。我可以使用小写和全部大小写。

结果:


0
投票

我想确认我自己已经看到并解决了这个问题。是真的。为了进行验证,我使用 InPrivate 浏览器打开,API 按预期工作。这不是代码或.NET,而是浏览器。我想确认一下这个消息,以便人们可以知道解决方案。

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