Asp.net-Mvc

不影響參數的小寫 URL

  • January 6, 2016

我目前正在使用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?

我以前遇到過這個。我最終做的是獲得AttributeRouting

它們對PreserveCaseForUrlParameters有一個很好的功能(上面連結) 。

另一種選擇是使用LowercaseRoutesMVC。在這種情況下,您可以將某些路線設為小寫,而您想要單獨使用的路線可以routes.MapRoute事先使用。但是,這可能會變得混亂,因為特殊配置的將是小寫的,而預設配置的整個路由不會是小寫的。

希望這可以幫助!

引用自:https://stackoverflow.com/questions/17243847