2 Stimmen

ASP.NET MVC: Steuerung der Namenskonventionen von Controllern/Views?

Kann mir jemand sagen, wie ich meine Benennungskonvention für meine Routen manuell bearbeiten kann? Lassen Sie mich erklären. Ich programmiere alles in Englisch nach Microsoft-Standards, aber ich benötige

  www.mydomain.com/Reserva  (Spanish for reservation)

Ich habe derzeit die folgenden

ReservationController und dann unter Ansichten habe ich einen Ordner namens Reservation mit einer Datei namens index.aspx (meine Ansicht).

Also im Grunde bin ich mit der Namenskonvention zufrieden, die ich habe, aber derzeit ist es notwendig, zu durchsuchen

  www.mydomain.com/Reservation

und nicht

  www.mydomain.com/Reserva 

damit meine Seite angezeigt wird

Ich habe die Standard MapRoute installiert, was muss ich tun, um die oben genannten zu aktivieren? irgendwelche Ideen?

   routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

5voto

Paul Mignard Punkte 5574

Sie könnten einfach eine neue Route in der gleichen Datei erstellen, etwa so:

routes.MapRoute(
            "Reserva",                                              // Route name
            "Reserva/{action}/{id}",                           // URL with parameters
            new { controller = "Reservation", action = "Index", id = "" }  // Parameter defaults
        );

und fügen Sie sie in Ihrer Datei über der Standardroute ein.

2voto

tvanfosson Punkte 506878

In diesem Fall würde ich wahrscheinlich die Namen der Controller/Aktionen in die Landessprache ändern (vorausgesetzt, Sie brauchen keine Unterstützung für mehrere Sprachen) und meine Variablen usw. in Englisch behalten. Andernfalls denke ich, dass Sie mit einer Route pro Controller/Aktionspaar feststecken, um jede Aktion aus dem Spanischen auf ihr englisches Äquivalent abzubilden. An diesem Punkt können Sie wollen Erstellen Sie Ihren eigenen Routing-Handler .

2voto

womp Punkte 113535

Die Antwort von OneKidney ist die einfachste Lösung für Sie, aber ich wollte nur darauf hinweisen, dass sie sich nicht so einfach skalieren lässt. Wenn Sie dies für viele Kontrolleure tun müssten, könnten Ihre Routen außer Kontrolle geraten.

Sie können also auch eine neue ControllerFactory implementieren. Die Standard-ControllerFactory-Klasse, die ASP.Net MVC verwendet, ist das, was den Text "Reservierung" der Controller-Klasse zuordnet, ReservationController . Sie können viele Tutorials darüber finden, wie Sie Ihre eigene Logik für die Instanziierung der richtigen Controller implementieren und verwenden können. Hier ist die erste, die ich gefunden habe.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X