HttpContext.Actuel.Demande.IsAjaxRequest (en) erreur dans la MVC 4
Je suis en utilisant
HttpContext.Current.Request.IsAjaxRequest()
condition à vérifier pour une requête ajax mondiale.asax dans Application_Error méthode, mais j'obtiens l'erreur ci-dessous:
'Système.Web.HttpRequest' ne contient pas une définition pour
'IsAjaxRequest" et la meilleure méthode d'extension de surcharge
'Système.Web.Mvc.AjaxRequestExtensions.IsAjaxRequest(Système D'.Web.HttpRequestBase)'
a quelques arguments non valides
Ci-dessous le code:
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" });
}
}
Soins de partager le code?
modifié la question d'ajouter le code.
Essayez
Merci ça a fonctionné.
modifié la question d'ajouter le code.
Essayez
new HttpRequestWrapper(System.Web.HttpContext.Current.Request).IsAjaxRequest()
IsAjaxRequest()
prend un HttpRequestBase qui est différent d'un HttpRequest (et non liés, de sorte qu'il est un peu déroutant). Je pense que le wrapper de résoudre votre problème.Merci ça a fonctionné.
OriginalL'auteur desiguy | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
Suppose que cela a marché... l'Affichage que la réponse.
Essayer
IsAjaxRequest()
prend unHttpRequestBase
qui est différent d'unHttpRequest
(et non liés, de sorte qu'il est un peu déroutant). Je pense que le wrapper de résoudre votre problème.HttpRequestWrapper
est dans leSystem.Web
espace de noms maisIsAjaxRequest()
est une méthode d'extension contenue dans leSystem.Web.Mvc
assemblée, de sorte que vous aurez besoin de comprendre à la fois dans votre espace de noms référencesOriginalL'auteur Pete
Dans mon cas, j'ai eu recours à l'aide d'une méthode statique (j'ai été dans un IRouteConstraint mise en Œuvre)
bool isAjax = AjaxRequestExtensions.IsAjaxRequest(httpContext.Request);
Pour que cela fonctionne, n'oubliez pas de
include System.Web.Mvc
si vous ne l'avez pas déjà.OriginalL'auteur Bart