HttpContext.Aktuelle.Anfrage.IsAjaxRequest() Fehler in MVC 4
Ich bin mit
HttpContext.Current.Request.IsAjaxRequest()
Zustand zu prüfen, eine ajax-Anfrage im Allgemeinen.asax in Application_Error-Methode, aber ich bekomme die folgende Fehlermeldung:
'- System.Web.HttpRequest' enthält keine definition für
'IsAjaxRequest' und die besten Erweiterung Methode überladen
'System.Web.Mvc.AjaxRequestExtensions.IsAjaxRequest(System.Web.HttpRequestBase)'
hat einige ungültige Argumente
Unten ist der 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" });
}
}
- Pflege zu teilen mit dem code?
- geändert die Frage, um den code hinzuzufügen.
- Versuchen
new HttpRequestWrapper(System.Web.HttpContext.Current.Request).IsAjaxRequest()
IsAjaxRequest()
nimmt eine HttpRequestBase die sich von einem HttpRequest (und nicht im Zusammenhang, so ist es ein bisschen verwirrend). Ich denke, dass der wrapper wird Ihr problem lösen. - Vielen Dank, dass hat funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schätze, es hat... Posting als Antwort.
Versuchen
IsAjaxRequest()
nimmt eineHttpRequestBase
was ist anders als einHttpRequest
(und nicht im Zusammenhang, so ist es ein bisschen verwirrend). Ich denke, dass der wrapper wird Ihr problem lösen.HttpRequestWrapper
ist in derSystem.Web
namespace aberIsAjaxRequest()
ist eine Erweiterung Methode enthalten, die in derSystem.Web.Mvc
Montage, so müssen Sie auch beide in Ihrem namespace-ReferenzenIn meinem Fall, behalf ich mir mit einer statischen Methode (ich war in einem IRouteConstraint Umsetzung)
bool isAjax = AjaxRequestExtensions.IsAjaxRequest(httpContext.Request);
Für diese zu arbeiten, vergessen Sie nicht zu
include System.Web.Mvc
wenn Sie es nicht haben bereits.