Respostas:
Todas as chamadas AJAX feitas por jQuery terão um cabeçalho adicionado para indicar que é AJAX. O cabeçalho a ser verificado é X-Requested-With
e o valor será XMLHttpRequest
quando for uma chamada AJAX.
Observe que as solicitações AJAX são GETs ou POSTs normais, portanto, a menos que você (ou sua biblioteca AJAX como jQuery) esteja adicionando um cabeçalho adicional na solicitação, não há como saber com certeza se é AJAX ou não.
Request.Headers["X-Requested-With"]
ou semelhante. Verifique o MSDN. Os cabeçalhos estão sempre relacionados a solicitações.
Também existe o Request.IsAjaxRequest
se você estiver usando uma versão posterior do MVC. Não tenho mais a versão 1, então não posso dizer se ela está na versão 1.
Se você precisar disso, verifique em Global.asax.cs, tente o seguinte:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase
. Eu não tinha necessidade disso, então não olhei muito profundamente. Obrigado pelo aviso.
Funciona para mim na ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()