Свойство HttpContext.Текущий.Запрос.Ошибка IsAjaxRequest() в MVC 4
Я использую
HttpContext.Current.Request.IsAjaxRequest()
условие для проверки запроса ajax в global.asax в методе Application_Error, но я получаю следующую ошибку:
'.Сеть.HttpRequest' не содержит определения для "IsAjaxRequest" и лучшая перегрузка метода расширения - Система.Сеть.В MVC.AjaxRequestExtensions.IsAjaxRequest (System.Сеть.HttpRequestBase)' имеет некоторые недопустимые аргументы
ниже код:
void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError().GetBaseException();
HttpException httpException = exception as HttpException;
string ErrorMessage = "";
ErrorMessage = "Application Level Error";
logger.Error(ErrorMessage, exception);
if (System.Web.HttpContext.Current.Request.IsAjaxRequest()) //if its an ajax do not redirect
{
return;
}
else
{
Server.ClearError();
this.Response.RedirectToRoute("Default", new { controller = "Home", action = "Error" });
}
}
2 ответов
думаю, это сработало... Постинг как ответ.
попробовать
new HttpRequestWrapper(System.Web.HttpContext.Current.Request).IsAjaxRequest()
IsAjaxRequest()
принимает HttpRequestBase
что это HttpRequest
(и не связано, так что это немного запутанно). Думаю, обертка исправит твою проблему.
в моем случае я прибегнул к использованию статического метода (я был в реализации IRouteConstraint)
bool isAjax = AjaxRequestExtensions.IsAjaxRequest(httpContext.Request);
для этого, чтобы работать, не забудьте include System.Web.Mvc
если у вас его еще нет.