【问题标题】:ASP.NET MVC: Get lowercase links (instead of Camel Case)ASP.NET MVC:获取小写链接(而不是 Camel Case)
【发布时间】:2010-11-27 21:24:52
【问题描述】:

我所有动态生成的操作链接等都在创建 /Account/Setup 之类的链接。看起来很奇怪。

我希望我的所有链接都是小写的(意思是 /account/setup)。有什么办法吗?

【问题讨论】:

    标签: c# .net asp.net-mvc dynamic-links


    【解决方案1】:

    .NET Framework 4.5 中有一个更简单的解决方案,一个新属性 RouteCollection.LowercaseUrls,这里是一个example

    【讨论】:

      【解决方案2】:

      看看http://goneale.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/。您可以在 How can I have lowercase routes in ASP.NET MVC? 的另一个 stackoverflow 中找到更多信息。

      到目前为止,其他帖子还没有解决您导航到 Web 目录根目录的情况。如果您有一个指向 HomeController Index 操作的映射,您希望显示以下 URL:

      mysite/home/ 甚至mysite/home/index

      Html 辅助函数的使用量不会改变这样一个事实,即默认情况下,浏览器位置栏中将显示以下内容:

      mysite/Homemysite/Home/Index

      【讨论】:

        【解决方案3】:

        为Html写一个扩展方法:

        public static class MyHtmlExtensions
        {
            public static string LowerActionLink(this HtmlHelper htmlHelper,someargs)
            {
                return String.ToLowerInvariant(htmlHelper.ActionLink(someArgs));
            }
        }
        

        然后使用 Html.LowerActionLink 代替 Html.ActionLink

        【讨论】:

        • 路由不区分大小写吗?
        • 我觉得不行,否则我就麻烦大了。
        • 啊...也许您可能想在路线的后面部分保留一些案例。建议在扩展方法中更明智地使用 ToLower
        • 从头开始。除了最简单的情况外,我认为这样做并不是一个好主意,但我会保留它以防它满足 OP 的需求。
        猜你喜欢
        • 2013-03-19
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-07
        • 2018-01-24
        • 1970-01-01
        • 2019-11-04
        相关资源
        最近更新 更多