Risposte:
Tutte le chiamate AJAX effettuate da jQuery avranno un'intestazione aggiunta per indicare che è AJAX. L'intestazione da controllare è X-Requested-Withe il valore sarà XMLHttpRequestquando 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.IsAjaxRequestse 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()