我有以下配置的路线:
routes.MapHttpRoute("oneKey",
"{controller}/{id}");
如果我转到端点/users/Maticicero
,路线将被正确委派给GET
班级中的UsersController
方法。
但是我输入id
参数就像输入Maticicero
一样。
由于这是我的数据库的主键,并且比较区分大小写,我需要将我的id标准化为小写,即:
id = id.ToLower()
我必须在每个控制器和每个采用id
参数的方法中执行此操作。
有没有办法告诉我的Web Api(或路由处理程序)自动降低这些参数(或整个URL)的大小写?
答案 0 :(得分:1)
注册路线时,请尝试使用routes.LowercaseUrls = true;
。 MSDN
RouteCollection.LowercaseUrls : 获取或设置一个值,该值指示是否将URL转换为 虚拟路径规范化时的小写。
但是当您使用http://host/controller?id=Maticicero
如果URL中包含查询字符串,则不包含该部分URL 转换为小写。
答案 1 :(得分:0)
您可以在Application_BeginRequest
事件中捕获该网址,解析该网址,然后使用HttpContext.RewritePath
修改原始网址。
https://msdn.microsoft.com/en-us/library/sa5wkk6d(v=vs.110).aspx