13

我目前正在使用LowercaseUrls选项设置为的 ASP.NET MVC 4 Routing 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?

4

1 回答 1

11

我以前遇到过这个。我最终做的是获得AttributeRouting

它们对PreserveCaseForUrlParameters有一个很好的功能(上面链接) 。

另一种选择是使用LowercaseRoutesMVC。在这种情况下,您可以将某些路线设为小写,而您想要单独使用的路线可以routes.MapRoute事先使用。但是,这可能会变得混乱,因为特殊配置的将是小写的,而默认配置的整个路由不会是小写的。

希望这可以帮助!

于 2013-06-21T21:26:14.903 回答