在不影响参数的情况下降低URL的大小写



我目前使用的是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。然而,这可能会变得混乱,因为特别配置的将是小写的,而默认的整个路由不会是

希望这能有所帮助!

最新更新