Принудительное отображение ссылок ActionLink в нижнем регистре - PullRequest
8 голосов
/ 30 января 2009

Без создания собственного ActionLink HtmlHelper есть ли способ заставить любые ActionLink-ы отображаться строчными?

Обновление: Проверьте следующие ссылки для расширения RouteCollection для добавления LowecaseRoutes [http://www.makiwa.com/index.php/2008/05/31/lowercase-mvc-route-urls/] [http://goneale.wordpress.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/]

Обновление - 03.02.2011: Поскольку две ссылки выше теперь не работают, я недавно опубликовал сообщение с моим решением

http://blog.lukesmith.net/2009/02/01/generating-and-enforcing-that-any-link-and-request-is-lowercase-with-aspnet-mvc/

1 Ответ

10 голосов
/ 30 января 2009

Лучший способ справиться с этим - на уровне маршрутизации. Заставьте все пути маршрута быть строчными, и это будет правильно распространяться на ваши ссылки действий и т. Д.

Способ, который я решил, - создать новый класс маршрута, который наследует Route и просто переопределяет метод GetVirtualPath;

public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
    var virtualPath = base.GetVirtualPath(requestContext, values);

    if (virtualPath != null)
        virtualPath.VirtualPath = virtualPath.VirtualPath.ToLowerInvariant();

    return virtualPath;
}

Я также создал несколько методов расширения для RouteCollection, чтобы упростить использование этого нового класса маршрута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...