将网址设为小写,但保留路由{id}参数变量大小写

时间:2017-10-31 09:19:06

标签: c# asp.net-mvc asp.net-mvc-5

在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(现已弃用)。没有安装附加包的解决方案对我们来说会更好。

1 个答案:

答案 0 :(得分:0)

你可以创建IRouteConstraint并做一些正则表达式 Creating a Custom Route Constraint