Recuperare i parametri della richiesta HTTP in MVC2

Scritto da  Nicolò Carandini il venerdì 13 agosto 2010  •  Linguaggio: C#   • Livello: 100


In un sito sviluppato con MVC 2 l'URL non corrisponde direttamente ad un file presente nel sito, ma viene interpretato mediante una routing table.
Ad esempio, l'URL http://miosito/torneo/risultati determina l'istanziazione del controller TorneoController e la chiamata al metodo Risultati (nel quale potremo elaborare i risulati del torneo e ritornare la pagina web che li visualizza).
Mentre l'URL http://miosito/torneo/risultatipartita/3 determina l'istanziazione del controller TorneoController e la chiamata al metodo RisultatiPartita con il parametro id pari a 3 (nel quale elaborare i dati relativi alla partita il cui id è pari a 3 e ...).
Questo grazie all'impostazione di default contenuta nella routing table, contenuta nel file Global.Asax, che può esssere ampliata e modificata a piacere.
Se abbiamo necessità di passare più parametri al metodo del controller, è possibile utilizzare la codifica HTTP <GET>, come ad esempio:
http://miosito/torneo/risultatipartita?GiornataID=8&SquadraID=12&Anno=2007
In questo caso, per recuperare le informazioni contenute nei parametri della richiesta HTTP <GET> possiamo usare l'oggetto Request.QueryString:

namespace MioProgetto.Controllers
{
public class TorneoController : Controller
{
//
// GET: /torneo/risultatipartita?GiornataID=[giornataID]&SquadraID=[squadraID]&Anno=[anno]

public void RisultatiPartita()
{
// Attenzione: in questo esempio non ci sono controlli...
string giornataID = Request.QueryString[0];
string squadraID = Request.QueryString[1];
string anno= Request.QueryString[2];
}
// attenzione: normalmente un controller ritorna una view, qui scriviamo direttamente l'html...
Response.Write("<h1>Sono stati richiesti i risultati della partita:</h1>" +
"<p>GiornataID: " + giornataID + "</p>" +
"<p>SquadraID: " + squadraID + "</p>" +
"<p>Anno: " + anno + "</p>"
);
}
}
}

 


Tags: MVC,URL

 
x