Recuperare i parametri della richiesta HTTP in MVC2
Scritto da
Nicolò Carandini il
venerdì 13 agosto 2010
•
Linguaggio:
• 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