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.
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?
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.
Tags und Links asp.net-mvc-5 asp.net-mvc-routing attributerouting