我有以下配置的路由:

问题描述 投票:0回答:2
,路由将正确委派给我的

GET

类中的
UsersController
方法。

无论我如何获得

id
参数,就像键一样。 由于这是我数据库的主要键,并且比较是敏感的,因此我需要将ID标准化为小写,也就是说:
Maticicero
我必须在每个控制器和每个采用
id = id.ToLower()

参数的方法中执行此操作。

有一种方法可以告诉我的Web API(或路由处理程序)自动降低这些参数(或整个URL)?

	
trory在注册路线时使用
id

MMSDN


routecollection.lowercaseurls

:
  获取或设置一个指示URL是否转换为的值
  当虚拟路径归一化时,较低的情况。

但是,当您使用这样的请求时要小心

routes.LowercaseUrls = true;

c# asp.net asp.net-web-api
2个回答
1
投票

如果在URL中包含查询字符串,那部分URL的一部分不是 转换为较低的情况。

此外,请看一下这个问题:如何在ASP.NET MVC中使用小写路由?
    

您可以将URL捕获在
http://host/controller?id=Maticicero

事件中,解析URL,然后使用Application_BeginRequest修改原始URL。

https://msdn.microsoft.com/en-us/library/sa5wkk6d(v = vs.110).aspx

    

我在全球范围内和分别尝试了这一点。

为全球添加以下添加: -

HttpContext.RewritePath


0
投票

services.AddRouting(options => options.LowercaseUrls = true);
注: - 

我正在使用dotnet core版本>6.0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.