Risposte:
Tutte le chiamate AJAX effettuate da jQuery avranno un'intestazione aggiunta per indicare che è AJAX. L'intestazione da controllare è X-Requested-With
e il valore sarà XMLHttpRequest
quando si tratta di una chiamata AJAX.
Nota che le richieste AJAX sono normali GET o POST, quindi a meno che tu (o la tua libreria AJAX come jQuery) non stia aggiungendo un'intestazione aggiuntiva alla richiesta, non c'è modo di sapere con certezza se si tratta di AJAX o meno.
Request.Headers["X-Requested-With"]
o simile. Controlla MSDN. Le intestazioni sono sempre correlate alle richieste.
C'è anche Request.IsAjaxRequest
se stai usando una versione successiva di MVC. Non ho più la versione 1, quindi non posso dire se è nella versione 1.
Se hai bisogno di questo controllo in Global.asax.cs, prova questo:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase
. Non ne avevo bisogno, quindi non ho guardato troppo in profondità. Grazie per il testa a testa.
Funziona per me in ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()