首页 > 解决方案 > 区分大小写的路由

问题描述

我正在寻找 ASP.NET Core 2.2 应用程序中区分大小写的路由。

例如:

[HttpGet("/yes}")]
public IActionResult Test()

domain.com/yesdomain.com/YES进行相同的操作。但我希望这完全区分大小写。

https://www.visualupload.com/u/2CU

https://www.visualupload.com/U/2CU(u 是大写的并且都可以工作。)

我怎样才能解决这个问题?

标签: asp.net-core.net-core

解决方案


正如其他海报所提到的,我强烈反对这种操作,因为出于多种原因,它可能是一场噩梦。但是,可以使用默认路由来执行此操作。

public class MyController : Controller
{
    public IActionResult MyAction(string id){ }
}

标准路由过程会将请求传递/My/MyAction/TeST给您的 MyAction 方法。

然后,您可以使用条件逻辑在 MyAction 方法中执行区分大小写的操作。

同样,这不是推荐的方法,但它是实现目标的一种方法。

编辑:在这里面你可能有类似的东西

switch(id)
{
    case "lowercase":
        return MyLowercaseAction();
    case "MiXeDcAsE":
        return MyMixedCaseAction();
    //etc.
}

然后,您将拥有返回各种场景的操作结果的单独方法。或者你需要做的任何其他事情。关键是您将收到信息并需要自行采取区分大小写的操作。


推荐阅读