在MVC5中,有一个选项可以通过在RouteCollection中设置routes.LowercaseUrls = true
来使所有URL小写。这符合预期会将所有字符更改为小写,包括{id}
参数。
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index" });
有没有办法将所有URL设置为小写,但允许ID参数是变体大小写?在我的系统中,ID是加密的,因此包含大写和小写字符。返回小写ID时,由于加密值不同,我得到错误Padding is invalid and cannot be removed
。
修改
我在StackOverflow上发现了Lowercase URLs without affecting parameters后建议安装第三方库Attribute Routing(现已弃用)。没有安装附加包的解决方案对我们来说会更好。