我试过Request.IsAjaxRequest
但WebForms中不存在。我在做一个JQuery ajax调用。如何在C#中检查这是否是ajax请求?如何检查请求是否是Ajax或代码隐藏 - ASP.NET Webforms
22
A
回答
43
你可以多建立自己的扩展方法一样MVC code
例如
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,
查尔斯
编辑:其实回调的要求也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");
}
1
通常,您需要测试X-Requested-With
标头,确保其值为'XMLHttpRequest'。我不是一个C#开发人员(还),但快速谷歌搜索说,在C#它是这样的:
Request.Headers["X-Requested-With"] == "XMLHttpRequest";
4
尝试检查的ScriptManager IsInAsyncPostBack:
ScriptManager.GetCurrent(Page).IsInAsyncPostBack
1
是, Request.IsAjaxRequest
看着标题和X-Requested-With
查询字符串,但它似乎你的jQuery不发送X-Requested-With
标题。
你可以试试,看看邮件头。它是通过使用招,或者只发送发送的查询字符串通过设置POST网址
/whatever.aspx?x-requested-with=XMLHttpRequest
+0
JQuery发送了X-Requested-With,所以如果我检查每个Karim79的头文件,它就会起作用。但是,Request在基本页面中没有IsAjaxRequest属性。 – DotnetDude 2010-12-08 22:34:31
0
装饰你的类[WebMethod(EnableSession = true)]
语法,如果你写的代码下面的函数一样在ajax调用后面并调用相同的函数,您可以确定。
[WebMethod(EnableSession = true)]
public static void getData(string JSONFirstData,string JSONSecondData, string JSONThirdData, string JSONForthData, ...)
{
//code
}
在阿贾克斯URL
像URL :'/Codebehind.aspx/getData'
相关问题
- 1. 如何检查是否AJAX请求是由浏览器
- 2. 如何检查文件是否隐藏?
- 3. 如何隐藏AJAX请求(JavaScript代码)尽可能多?
- 4. ASP.net是否通过代码隐藏代码使用MVP模式?
- 5. 检查验证组是否有效从代码隐藏
- 6. 如何检查文件夹或文件是否隐藏=
- 7. IIS如何知道请求是webforms还是MVC? (ASP.NET)
- 8. 如何知道请求是否是asp.net mvc中的ajax?
- 9. 从Asp.Net代码隐藏(不是函数)
- 10. Rails检测请求是否为AJAX
- 11. GET请求是否包含隐藏的数据或参数?
- 12. 如何检查是否正在从代理请求页面?
- 13. 如何检查我的请求 - 响应是否被编码?
- 14. 检查是否存在任何AJAX请求
- 15. IBAction子检查是否隐藏图像
- 16. 如何从ajax请求中检索隐藏的TD值
- 17. 如何在codeigniter中检查请求是POST还是GET请求?
- 18. 检查Ajax请求
- 19. 检查Web API请求是否完成
- 20. Umbraco - 检查请求是否为XmlHttpRequest
- 21. Codeigniter - 检查是否发出GET请求
- 22. 检查是否隐藏等于真或假的jQuery
- 23. 使用jQuery AJAX在控制代码隐藏而不是页面代码隐藏中调用ASP.NET函数
- 24. 检查Ajax请求格式是否正确
- 25. 使Ajax请求递归 - 检查文件是否存在
- 26. 是否可以通过代码删除(或隐藏)按钮?
- 27. .NET Core 2:如何检查请求是否为MIME multipart内容?
- 28. 检查是否verfication代码是正确
- 29. 这个JS代码是否等待AJAX请求完成?
- 30. 我应该检查Ajax请求或不
这是否工作,它们都从jQuery的阿贾克斯以及来自诸如更新面板控件触发Ajax请求? – DotnetDude 2010-12-08 22:14:59
我不确定,所以我写了`try` ;-) – 2010-12-08 22:17:03