Frage

Gibt es eine Klasse in dem ASP.NET MVC-Framework, das einen Controller-Namen und einen Aktionsnamen repräsentiert?

Ich schreibe eine Methode, die eine Sammlung von URLs zurück, und ich möchte, dass sie als Objekte werden zurückgegeben, die ein ‚Controller‘ enthalten und ‚Action‘ Eigenschaft oder etwas ähnliches.

Das liegt daran, manchmal werde ich nur den Namen des Controllers isolieren müssen oder einfach nur den Namen der Aktion.

Es ist die Strecke Objekt, aber es scheint viel zu Schwergewicht für das, was ich versuche zu tun.

Gibt es eine einfachere Abstraktion in ASP.NET MVC?

War es hilfreich?

Lösung

Es gibt eine Controller-Basisklasse nicht ein Name aber ein Action-Name einfach eine Zeichenfolge, die die ActionInvoker wird die richtige Aktion durch Reflexion finden verwenden.

Ich glaube, Sie werden die verwenden Route Werte Wörterbuch von Schlüssel / Wert-Paaren um die Strecke zu stellen.

RouteValueDictionary myValues = new RouteValueDictionary();
myValues.Add("Controller", "myController");

Sie können ein normales Wörterbuch verwenden und es dann zu einem Routevaluedictionary in Code umwandeln, wenn Sie nicht wollen / können keinen Zugriff auf den Routing-Namensraum haben müssen.

Bei diesem Ansatz können Sie dann mit den Tasten des entweder einem Standard-Wörterbuch oder routeValue Wörterbuch die Isolierung des Controllers oder Aktion zu tun.

String ControlString = myValues["Controller"] 

Dann tun, was man will. verwenden Konstanten für die Tasten, die Sie vielleicht zugreifen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top