我試過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