Odpowiedzi:
Wszystkie wywołania AJAX wykonywane przez jQuery będą miały dodany nagłówek wskazujący, że jest to AJAX. Nagłówek do sprawdzenia to X-Requested-With
, a wartość będzie, XMLHttpRequest
gdy będzie to wywołanie AJAX.
Zwróć uwagę, że żądania AJAX to zwykłe żądania GET lub POST, więc jeśli Ty (lub Twoja biblioteka AJAX, taka jak jQuery) nie dodasz dodatkowego nagłówka w żądaniu, nie ma sposobu, aby wiedzieć, czy jest to AJAX, czy nie.
Request.Headers["X-Requested-With"]
lub podobny. Sprawdź MSDN. Nagłówki są zawsze związane z żądaniami.
Jest też Request.IsAjaxRequest
opcja, jeśli używasz nowszej wersji MVC. Nie mam już wersji 1, więc nie mogę powiedzieć, czy jest w wersji 1.
Jeśli potrzebujesz tego sprawdzenia w Global.asax.cs, spróbuj tego:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase
. Nie potrzebowałem tego, więc nie zajrzałem zbyt głęboko. Dzięki za ostrzeżenie.
U mnie działa w ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()