私は使っている
HttpContext.Current.Request.IsAjaxRequest()
Application_Error メソッドの global.asax で ajax リクエストをチェックする条件ですが、次のエラーが発生します。
'System.Web.HttpRequest' には 'IsAjaxRequest' の定義が含まれておらず、最適な拡張メソッド オーバーロード 'System.Web.Mvc.AjaxRequestExtensions.IsAjaxRequest(System.Web.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" });
}
}