Ответы:
Все вызовы 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()