Come riconoscere una chiamata Ajax in ASP.NET
Scritto da
Giorgio Di Nardo il
domenica 23 gennaio 2011
•
Linguaggio:
• Livello: 100
Nonostante il nome molto incoraggiante, la proprietà
IsAsync della classe Page non
fornisce un aiuto in materia.
Il problema può invece essere risolto analizzando la collezione
degli Headers della Request
associata al HttpContext corrente.
L'header in questione è in particolare quello contrassegnato
dalla chiave X-Requested-With che viene impostato
a XMLHttpRequest nel caso di richieste Ajax.
In un normale Web Form (.aspx) che eredita da
System.Web.UI.Page è quindi possibile utilizzare
indifferentemente la sintassi:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
[...]
}
}
o quella:
protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
[...]
}
}
mentre in un Generic Handler (.ashx) che eredita da
IHttpHandler è possibile usare la sintassi:
public void ProcessRequest(HttpContext context)
{
if (context.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
[...]
}
}
Tags: ASP.NET,Ajax