Intenté el Request.IsAjaxRequest
pero esto no existe en WebForms. Estoy haciendo una llamada JQuery ajax. ¿Cómo puedo verificar si esta es una solicitud de Ajax o no en C#?Cómo comprobar si la solicitud es ajax o no en código subyacente - ASP.NET Webforms
Respuesta
Se puede crear su propio método de extensión muy parecido el que está en el MVC code
Por ej.
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,
Carlos
Edit: solicitudes realidad de devolución de llamada son también peticiones Ajax,
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");
}
En general, deberá comprobar el encabezado X-Requested-With
, asegurándose de que su valor sea 'XMLHttpRequest'. No soy un desarrollador de C# (aún), pero una rápida búsqueda en Google dice que en C# que es algo como esto:
Request.Headers["X-Requested-With"] == "XMLHttpRequest";
tratar de comprobar si el ScriptManager IsInAsyncPostBack:
ScriptManager.GetCurrent(Page).IsInAsyncPostBack
se encarga de ello peticiones Ajax que se activan tanto desde jquery ajax, así como de controles tales como paneles de actualización? – DotnetDude
No estoy seguro, por lo tanto escribí 'try' ;-) –
Sí, Request.IsAjaxRequest
mira los encabezados y la cadena de consulta para X-Requested-With
, pero parece que su jquery no está enviando el encabezado X-Requested-With
.
Puede tratar de ver lo que las cabeceras se envía mediante el uso de Fiddler, o, alternativamente, simplemente lo envían en la cadena de consulta mediante el establecimiento de la URL POST para
/whatever.aspx?x-requested-with=XMLHttpRequest
JQuery está enviando X-Requested-With así que si verifico los encabezados por Karim79, funciona. Pero allí la Solicitud no tiene una propiedad IsAjaxRequest en la página base. – DotnetDude
Ah, ya veo, pensé que querías decir que siempre fue falso. ¿Qué versión de ASP.net está usando y podríamos ver algún código para reproducir su problema? – devrooms
Adorne su clase con [WebMethod(EnableSession = true)]
sintaxis como si se escribe la función siguiente en el código de detrás y llamar a la misma función desde la llamada ajax estará seguro.
[WebMethod(EnableSession = true)]
public static void getData(string JSONFirstData,string JSONSecondData, string JSONThirdData, string JSONForthData, ...)
{
//code
}
en la URL Ajax ser como URL :'/Codebehind.aspx/getData'
- 1. cómo saber si la solicitud es ajax en asp.net mvc?
- 2. ¿Cómo sabe IIS si una solicitud es webforms o MVC? (ASP.NET)
- 3. ASP.NET MVC o WebForms?
- 4. Cómo usar ajax con asp.net webforms
- 5. Verificar si la solicitud fue enviada por Ajax o no
- 6. Llamar ASP.NET Web API desde código subyacente
- 7. Código subyacente en ASP.NET MVC
- 8. ¿Cómo saber si la solicitud es ajax en asp.net en Application_Error()
- 9. Aprenda Asp.Net WebForms o Asp.Net MVC
- 10. Determine si la aplicación es WinForms o WebForms
- 11. ASP.NET webforms + ASP.NET Ajax versus ASP.NET MVC y Ajax framework freedom
- 12. ¿Cómo comprobar si NSString es numérico o no
- 13. Verificar si la solicitud es AJAX en Python
- 14. Cómo comprobar si la página es una devolución de datos dentro de la función reservada pageLoad en ASP.NET AJAX
- 15. Mejores WebForms inspirados en asp.net MVC
- 16. ASP.NET confirme antes de ejecutar código subyacente
- 17. Cómo comprobar si la sesión ha expirado o no en asp.net
- 18. Comprobando si un ValidationGroup es válido desde el código subyacente
- 19. Eliminar un control asp.net del código subyacente
- 20. ASP.NET MVC> ASP.NET WebForms, ¿Por qué?
- 21. ¿Cómo comprobar si la matriz es nula o está vacía?
- 22. ASP.NET: ¿código detrás o no código detrás?
- 23. ¿Cómo saber si una solicitud HTTP es de Ajax?
- 24. Cómo comprobar si la opción wifi está habilitada o no
- 25. cómo comprobar si la tostada se ha descartado o no
- 26. ASP.NET MVC - ¿Puedo usar código subyacente
- 27. solicitud POST jQuery (no AJAX)
- 28. Webforms de ASP.NET con jQuery?
- 29. ¿Qué es ASP.NET WebForms equivalente a ViewData de ASP.NET MVC
- 30. ¿Cómo comprobar si NFC está habilitado o no en Android?
Esa última línea se puede refactorizar a 'solicitud de devolución [" X-Requested-With "] ==" XMLHttpRequest "|| request.Headers ["X-Requested-With"] == "XMLHttpRequest"; ' – mattalxndr
@mattalxndr - qué bueno es el reajuste;) – Dementic
agregado es el respaldo de devolución de llamada – user960567