Ответы:
Все вызовы AJAX, выполняемые jQuery, будут иметь заголовок, указывающий, что это AJAX. Заголовок для проверки есть X-Requested-With
, и значение будет, XMLHttpRequest
когда это вызов AJAX.
Обратите внимание, что запросы AJAX являются обычными GET или POST, поэтому, если вы (или ваша библиотека AJAX, например jQuery) не добавляете дополнительный заголовок в запрос, невозможно точно узнать, является ли это AJAX или нет.
Request.Headers["X-Requested-With"]
или подобное. Проверьте MSDN. Заголовки всегда связаны с запросами.
Также существует проблема, Request.IsAjaxRequest
если вы используете более позднюю версию MVC. У меня больше нет версии 1, поэтому я не могу сказать, находится ли она в версии 1.
Если вам нужна эта проверка в Global.asax.cs, попробуйте следующее:
new HttpRequestWrapper(Request).IsAjaxRequest()
HttpRequestBase
. В этом мне не было нужды, поэтому я не смотрел слишком глубоко. Спасибо за внимание.
Это работает для меня в ASP.NET MVC 3
if (Request.IsAjaxRequest())
{
// ajax request handled
}
new HttpRequestWrapper(Request).IsAjaxRequest()