Как я могу иметь строчные, плюс подчеркивание, если это возможно, маршруты в ASP.NET MVC? Чтобы мне /dinners/details/2
позвонили DinnersController.Details(2)
и, если возможно, /dinners/more_details/2
позвонили DinnersController.MoreDetails(2)
?
Все это при использовании шаблонов, как {controller}/{action}/{id}
.
asp.net-mvc
url
routes
case
J. Pablo Fernández
источник
источник
Ответы:
С System.Web.Routing 4.5 вы можете реализовать это просто, установив свойство LowercaseUrls в RouteCollection:
Также при условии, что вы делаете это по причинам SEO, вы хотите перенаправить входящие URL-адреса в нижний регистр (как сказано во многих ссылках этой статьи).
источник
Эти два урока помогли, когда я хотел сделать то же самое и работать хорошо:
http://www.coderjournal.com/2008/03/force-mvc-route-url-lowercase/ http://goneale.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/
РЕДАКТИРОВАТЬ: Для проектов с областями, вам необходимо изменить метод GetVirtualPath ():
источник
Если вам довелось использовать ASP.NET Core, вам, вероятно, стоит взглянуть на это :
источник
Если вы используете UrlHelper для генерации ссылки, вы можете просто указать имя действия и контроллер в нижнем регистре:
Результаты в: / media / photos / delete / 64 (хотя мой контроллер и действие в паскале).
источник
Я нашел это в журнале Coder Journal Ника Берарди , но там не было информации о том, как реализовать
LowercaseRoute
класс. Отсюда репостинг с дополнительной информацией.Сначала продлите
Route
класс доLowercaseRoute
Затем измените
RegisterRoutes
метод Global.asax.csОднако я хотел бы знать, как использовать маршруты. КартаRoute ...
источник
routes.MapRouteLowercase(...
что лучше, чем указано выше: didale.wordpress.com/2008/12/19/…Вы можете продолжить использовать синтаксис MapRoute, добавив этот класс в качестве расширения к RouteCollection:
Теперь вы можете использовать при запуске вашего приложения «MapRouteLowerCase» вместо «MapRoute»:
источник
LowercaseRoute
класс в первом фрагменте кода выше, кажется, прибывает из этого другого ответаНа самом деле это имеет два ответа:
Вы сами по себе для подчеркивания, хотя ...
источник
Не могли бы вы использовать атрибут ActionName?
Я не думаю, что дело имеет значение. More_Details, more_DETAILS, mOrE_DeTaILs в URL ведут вас к одному и тому же действию контроллера.
источник