public static bool IsJqAjaxRequest(this HttpRequestBase request)
{
RouteData routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(HttpContext.Current));
return request != null && request.QueryString != null && request.Headers != null &&
( "true".Equals(routeData.DataTokens["__mvcajax"])
|| "true".Equals(request.QueryString["__mvcajax"])
|| !String.IsNullOrEmpty(request.Headers["Ajax"])
|| "XMLHttpRequest".Equals(request.Headers["X-Requested-With"], StringComparison.InvariantCultureIgnoreCase)
);
}