Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if request is ajax or not in codebehind - ASP.NET Webforms

I tried the Request.IsAjaxRequest but this does not exist in WebForms. I am making a JQuery ajax call. How do I check if this is a ajax request or not in C#?

like image 958
DotnetDude Avatar asked Dec 08 '10 22:12

DotnetDude


People also ask

How do I know if Ajax is working in asp net?

Previously, ASP.NET MVC applications could easily check if a request was being made via AJAX, through the aptly named IsAjaxRequest() method which was an available method on the Request object, as shown below: public ActionResult YourActionName() { // Check if the request is an AJAX call.

How do you use Ajax in WebForms?

AJAX in ASP.NET WebFormsThe method needs to be public, static, and add an attribute as WebMethod on top of it. Add the following code in code-behind file (*. aspx. cs) which receives list of employees and returns same.

Is Ajax request GET or POST?

post() methods provide simple tools to send and retrieve data asynchronously from a web server. Both the methods are pretty much identical, apart from one major difference — the $. get() makes Ajax requests using the HTTP GET method, whereas the $. post() makes Ajax requests using the HTTP POST method.


2 Answers

You could create your own extension method much like the one in the MVC code

E.g.

public static bool IsAjaxRequest(this HttpRequest request) {     if (request == null)     {         throw new ArgumentNullException("request");     }      return (request["X-Requested-With"] == "XMLHttpRequest") || ((request.Headers != null) && (request.Headers["X-Requested-With"] == "XMLHttpRequest")); } 

HTHs,
Charles

Edit: Actually Callback requests are also ajax requests,

    public static bool IsAjaxRequest(this HttpRequest request)     {         if (request == null)         {             throw new ArgumentNullException("request");         }         var context = HttpContext.Current;         var isCallbackRequest = false;// callback requests are ajax requests         if (context != null && context.CurrentHandler != null && context.CurrentHandler is System.Web.UI.Page)         {             isCallbackRequest = ((System.Web.UI.Page)context.CurrentHandler).IsCallback;         }         return isCallbackRequest || (request["X-Requested-With"] == "XMLHttpRequest") || (request.Headers["X-Requested-With"] == "XMLHttpRequest");     } 
like image 68
Charlino Avatar answered Sep 20 '22 20:09

Charlino


Try to check if the ScriptManager IsInAsyncPostBack :

ScriptManager.GetCurrent(Page).IsInAsyncPostBack 
like image 45
Tim Schmelter Avatar answered Sep 22 '22 20:09

Tim Schmelter