Wie kann ich Kleinbuchstaben Routen in ASP.NET MVC haben?
Wie kann ich in Kleinbuchstaben, plus Unterstrich Sie, wenn möglich, Routen in ASP.NET MVC? Also, ich hätte /dinners/details/2
nennen DinnersController.Details(2)
und, wenn möglich, /dinners/more_details/2
nennen DinnersController.MoreDetails(2)
?
All dies, während immer noch mit mustern wie {controller}/{action}/{id}
.
Kommentar zu dem Problem - Öffnen
Landete ich Schreibe alle meine Routen manuell sowieso aus verschiedenen Gründen und ich denke es ist schwer zu vermeiden Sie tun, mit allem, was nicht nur DRECK. Also schrieb ich Sie in Kleinbuchstaben.
Mit Web-Formulare? Gehen Sie hier: msdn.microsoft.com/en-us/library/.... (Ich bin allmählich die Umwandlung meines Projekts von web forms, MVC und haben sowohl im Projekt)
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit System.Web.Routing 4.5 Sie können implementieren Sie diese einfach durch Einstellung LowercaseUrls Eigenschaft von RouteCollection:
Ebenfalls vorausgesetzt, Sie tun dies für SEO-Gründen Sie wollen umleiten eingehender urls auf lowercase (wie gesagt, in vielen von den links aus diesem Artikel).
InformationsquelleAutor der Antwort
Diese zwei tutorials geholfen, wenn ich wollte, das gleiche zu tun und funktionieren gut:
http://www.coderjournal.com/2008/03/force-mvc-route-url-lowercase/
http://goneale.com/2008/12/19/lowercase-route-urls-in-aspnet-mvc/
EDIT: Für Projekte, die mit Bereichen, müssen Sie zum ändern der GetVirtualPath () - Methode:
InformationsquelleAutor der Antwort Derek Lawless
Wenn Sie mit dem UrlHelper zu generieren, die den link haben, können Sie einfach geben Sie den Namen der Aktion und controller als Kleinbuchstaben:
Ergebnisse in: /media/photos/löschen/64 (auch wenn meine controller und die Aktion sind "pascal case").
InformationsquelleAutor der Antwort
Fand ich diese bei Nick Berardi ' s Coder-Journal, aber Sie haben nicht die Informationen auf, wie die Umsetzung der
LowercaseRoute
Klasse. Daher Umbuchung hier mit zusätzlichen Informationen.Zuerst erweitern die
Route
KlasseLowercaseRoute
Dann ändern Sie die
RegisterRoutes
Methode "Global".asax.csIch würde aber gerne wissen, einen Weg zu Routen.MapRoute...
InformationsquelleAutor der Antwort
Können Sie weiterhin verwenden MapRoute-syntax durch das hinzufügen dieser Klasse als eine Erweiterung RouteCollection:
Nun können Sie in Ihrer Anwendung verwenden startup "MapRouteLowerCase" statt "MapRoute":
InformationsquelleAutor der Antwort
Wenn Sie geschehen, zu verwenden ASP.NET Core, sollten Sie wahrscheinlich haben einen Blick auf diese:
InformationsquelleAutor der Antwort
Dieser hat eigentlich zwei Antworten:
Sind Sie selbstständig für die Unterstriche, aber...
InformationsquelleAutor der Antwort GalacticCowboy
Konnte verwenden Sie die ActionName-Attribut?
Ich glaube nicht, dass gross /Kleinschreibung unterschieden werden. More_Details, more_DETAILS, mOrE_DeTaILs in der URL alle nehmen Sie an den gleichen Controller Handeln.
InformationsquelleAutor der Antwort GuyIncognito