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
Eseguire query verso tipi non mappati in Entity Framework Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Short-circuiting della Pipeline in ASP.NET Core
Reactive form tipizzati con modellazione del FormBuilder in Angular
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Eseguire una GroupBy per entity in Entity Framework
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
.NET Conference Italia 2023
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Utilizzare le collection expression in C#
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
I più letti di oggi
- Utilizzare Azure AI Studio per testare i modelli AI
- I lego? Programmabili con .NET!
- Taggare automaticamente un repository con una pipeline di Azure DevOps
- Semplificare con un extension method l'aggiunta di filtri a run time nelle query LINQ
- Cambiare la pagina di anteprima dei Web Services
- Tracciabilità dei work item nel ciclo di vita del software con Azure DevOps
- Creare contatori nelle pipeline YAML con Azure DevOps