Tutte le volte che abbiamo la necessità di recuperare il link a una determinata action conviene sfruttare la funzionalità di generazione degli URL messa a disposizione dal routing. Il vantaggio, rispetto a scrivere manualmente delle stringhe, è che se le impostazioni del routing in futuro dovessero cambiare, tutti gli url generati si aggiorneranno automaticamente e rifletteranno il nuovo setup.
In ASP.NET MVC abbiamo a disposizione la classe UrlHelper, che possiamo facilmente invocare da un controller in questo modo:
var url = this.Url.Action( "MyAction", "MyController", new { id = 5});
Anche ASP.NET Web API possiede un oggetto UrlHelper, ma la sintassi è leggermente differente. Infatti, dall'interno di un ApiController, dovremo scrivere:
var url = this.Url.Link( "DefaultApi", new { controller = "myController", id = 5});
Come possiamo notare, abbiamo innanzi tutto dovuto specificare il nome della route di Web API, che, per default, è DefaultApi. Il secondo parametro è un anonymous type in cui invece abbiamo indicato i parametri della regola di routing:
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
In particolare, essi sono solo il controller e l'id, perché la action invocata dipenderà dal verbo HTTP della chiamata (GET, POST, PUT, e via discorrendo).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Aggiungere interattività lato server in Blazor 8
Effettuare il refresh dei dati di una QuickGrid di Blazor
Sostituire la GitHub Action di login su private registry
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Sfruttare al massimo i topic space di Event Grid MQTT
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Generare velocemente pagine CRUD in Blazor con QuickGrid
Routing statico e PreRendering in una Blazor Web App
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Eseguire script pre e post esecuzione di un workflow di GitHub