Attribut-Routing in MVC 5 und optionale Standardwerte

9

Herkömmliche Routing-Standardeinstellungen bedeuteten, dass wir auf diese URLs zugreifen konnten und immer mit derselben Aktion enden:

%Vor%

Aber heute würden wir etwas in diesen Zeilen schreiben:

%Vor%

Aber diese Routing-Definition ist keineswegs die gleiche.

%Vor%

Wenn wir dann den oberen Code in

ändern %Vor%

Aber dann stellen wir die Verarbeitung auf den Kopf:

%Vor%

Wir könnten den deklarativen Code ausführlicher machen und ihn wie altmodisches Routing durch

funktionieren lassen %Vor%

Dies funktioniert mit allen drei verschiedenen Routen.

Frage

Dieses Problem ist natürlich an die Standardaktion der Anwendung gebunden, die den Controller und die Aktion standardmäßig verwendet. Es ist nur das Ich frage mich, ob dies der einzige Weg ist, es zu tun? Gibt es einen weniger verbose Code Weg, um es wie erwartet zu funktionieren?

    
Robert Koritnik 11.12.2013, 14:50
quelle

2 Antworten

8

Ja, richtig ... was du hast, ist der Weg hier zu machen ...

Ich habe den Code hier ein wenig modifiziert:

%Vor%

Einige Details:
1. Ihr erster Fall ist nicht genau dasselbe wie herkömmliches Routing, da Sie in diesem Fall ein wörtliches Segment Home haben, das nicht dem herkömmlichen Routing-Optional von {controller}/{action}/{id} and controller = Home, action=Index,id=optional entspricht.
2. Ihr zweiter Fall wird standardmäßig erwartet, wenn ein Route -Attribut bei Aktion verwendet wird, werden die Attribute auf Controller nicht wirksam.

    
Kiran Challa 11.12.2013, 17:46
quelle
0

jetzt für SEO sollten Sie kanonische URL verwenden, die einzelne URL so etwas wie

bedeutet %Vor%

, so dass der Home-Controller nur im Root-Verzeichnis zugänglich ist

    
Asad Ali 26.01.2016 03:39
quelle