Antworten:
Allen von jQuery getätigten AJAX-Aufrufen wird ein Header hinzugefügt, der angibt, dass es sich um AJAX handelt. Der zu überprüfende Header ist X-Requested-Withund der Wert ist, XMLHttpRequestwenn es sich um einen AJAX-Aufruf handelt.
Beachten Sie, dass AJAX-Anforderungen normale GETs oder POSTs sind. Wenn Sie (oder Ihre AJAX-Bibliothek wie jQuery) der Anforderung keinen zusätzlichen Header hinzufügen, können Sie nicht sicher feststellen, ob es sich um AJAX handelt oder nicht.
Request.Headers["X-Requested-With"]oder ähnlich. Überprüfen Sie MSDN. Header beziehen sich immer auf Anforderungen.
Es gibt auch die, Request.IsAjaxRequestwenn Sie eine spätere Version von MVC verwenden. Ich habe keine Version 1 mehr, daher kann ich nicht sagen, ob es sich um Version 1 handelt.
Wenn Sie diese Prüfung in Global.asax.cs benötigen, versuchen Sie Folgendes:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase. Ich hatte kein Bedürfnis danach, also habe ich nicht zu tief geschaut. Danke für die Warnung.
Es funktioniert für mich in ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()