Réponses:
Tous les appels AJAX effectués par jQuery auront un en-tête ajouté pour indiquer qu'il s'agit d'AJAX. L'en-tête à vérifier est X-Requested-With
, et la valeur sera XMLHttpRequest
quand il s'agit d'un appel AJAX.
Notez que les requêtes AJAX sont des GET ou POST normaux, donc à moins que vous (ou votre bibliothèque AJAX comme jQuery) n'ajoutiez un en-tête supplémentaire dans la requête, il n'y a aucun moyen de savoir avec certitude s'il s'agit d'AJAX ou non.
Request.Headers["X-Requested-With"]
ou similaire. Vérifiez MSDN. Les en-têtes sont toujours liés aux demandes.
Il y a aussi le Request.IsAjaxRequest
si vous utilisez une version ultérieure de MVC. Je n'ai plus la version 1 donc je ne peux pas dire si c'est en version 1.
Si vous avez besoin de cette vérification dans Global.asax.cs, essayez ceci:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase
. Je n'ai pas eu besoin de ça, alors je n'ai pas cherché trop profondément. Merci pour l'information.
Cela fonctionne pour moi dans ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()