- Learn
- Guida ASP.NET MVC
- Route constraints
Route constraints
In questa lezione vediamo come poter meglio controllare i parametri che compongono l’URL, inserendo dei vincoli. Prendiamo per esempio la seguente regola, vista nella lezione precedente:
{controller}/{action}/{id}
La regola è verificata per URL come i seguenti:
gallery/show/5 gallery/show/134 ...
Le azioni dei controller cui questa regola è associata, ad esempio Detail
, si aspettano di ricevere un valore di tipo Integer
per il parametro {id}
:
public ActionResult Detail(int id) { }
ASP.NET, tuttavia, non esegue alcun controllo automatico sul valore dei parametri ed utilizza soltanto la struttura degli URL per verificare le regole di routing. La regola precedente è verificata quindi anche per URL che contengono un parametro {id}
di tipo non numerico:
gallery/show/blabla gallery/show/testoAcaso
Richiamare uno degli URL precedenti nella nostra galleria di immagini genererà una eccezione, poichè ASP.NET cercherà di richiamare l’azione corrispondente (come Detail
, che necessita di un ID numerico) passandogli un valore di tipo String
.
Per ovviare a questi problemi il meccanismo di routing ci mette a disposizione i Route Constraints con cui è possibile dichiarare dei vincoli a cui i parametri devono sottostare per essere considerati validi. È possibile dichiarare i constraints direttamente nella chiamata alla funzione MapRoute
:
routes.MapRoute( "Gallery", "{controller}/{action}/{id}", new { controller = "Gallery", action = "Index", id = "" }, new { id = @"d+" } );
Abbiamo già incontrato i primi tre parametri della funzione nella lezione precedente; il nuovo parametro definisce un route constraint sul parametro {id}
attraverso l’uso di espressioni regolari. Perchè l’URL sia considerato valido, quindi, {id}
dovrà essere formato da una o più cifre numeriche.
ASP.NET permette anche di definire nuovi route constraints, utili per esigenze specifiche. La creazione di vincoli personalizzati esula tuttavia dagli scopi di questa guida.
Se vuoi aggiornamenti su Route constraints inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Metasploit: snapshot della webcam su una macchina violata
Metasploit permette di poter utilizzare la webcam di una macchina violata. Nel video è mostrato come poter salvare uno snapshot […]