Classe ASP.NET MVC che rappresenta un controller + set di azioni?
-
22-07-2019 - |
Domanda
Esiste una classe nel framework MVC ASP.NET che rappresenta un nome controller e un nome azione?
Sto scrivendo un metodo che restituirà una raccolta di URL e desidero che vengano restituiti come oggetti che contengono una proprietà "Controller" e "Azione" o qualcosa di simile.
Questo perché a volte dovrò isolare solo il nome del controller o solo il nome dell'azione.
C'è l'oggetto Route, ma sembra troppo pesante per quello che sto cercando di fare.
Esiste un'astrazione più semplice in ASP.NET MVC?
Soluzione
Esiste una classe Controller Base non un nome, un nome di azione è semplicemente una stringa che ActionInvoker utilizzerà per trovare l'azione corretta tramite la riflessione.
Penso che dovrai usare Dizionario dei valori di rotta delle coppie chiave / valore per rappresentare la rotta.
RouteValueDictionary myValues = new RouteValueDictionary();
myValues.Add("Controller", "myController");
È possibile utilizzare un dizionario normale e quindi convertirlo in codice in un RouteValueDictionary se non si desidera / non è necessario avere accesso allo spazio dei nomi di routing.
In questo approccio è quindi possibile utilizzare le chiavi di un dizionario standard o del dizionario routeValue per eseguire l'isolamento del controller o dell'azione.
String ControlString = myValues["Controller"]
Quindi fai quello che vuoi con esso. Forse usa le costanti per le chiavi a cui desideri accedere.