我目前使用的是ASP.NET MVC 4路由,其中LowercaseUrls
选项设置为true
,它运行得很好。我使用的配置是:
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Inicio",
action = "Index",
id = UrlParameter.Optional
});
但在一组特定的操作中,我有一个字符串id
参数,它是加密的,区分大小写。
然后,当我尝试生成这样的动作链接时:
@Html.ActionLink("My Text", "Action", "Controller", new { id = encryptedString })
URL中的id
参数被转换为小写,导致在尝试解密字符串时出错。
是否可以将路由配置为忽略URL参数的小写URL?
我以前遇到过这种情况。我最终得到的是AttributeRouting。
它们有一个与PreserveCaseForUrlParameters相关的功能。
另一个选项是使用LowercaseRoutesMVC。在这种情况下,您可以将某些路由设置为小写,而那些您想保留的路由则可以预先使用routes.MapRoute
。然而,这可能会变得混乱,因为特别配置的将是小写的,而默认的整个路由不会是
希望这能有所帮助!