我知道MVC控制器非常擅長服務JSON格式的AJAX請求,但是有沒有內置的ASP.NET功能可以用於這些類型的普通舊式Web表單調用?如何在Web窗體中使用JSON來服務AJAX調用?
回答
您可以使用內置的ASP.NET AJAX。
選項1 - 使用Web服務(如果你想要的功能可重用):
- 創建一個Web服務(的.asmx)用[ScriptService]屬性,
- 添加到您的網頁並將Web服務添加到其服務集合中,使用ScriptManager在yor頁面中生成的JavaScript代理
- 。
選項2 - 使用頁面方法(如果您想在不創建一個Web服務的單頁上的功能):
- 定義在你的頁面的靜態方法,添加[WebMethod]屬性給他們,
- 使用EnablePageMethods =「true」添加ScriptManager,
- 使用PageMethods對象從JavaScript調用這些方法。
無論哪種情況,JSON都將用於數據傳輸。
這是一個廣泛的tutorial與一些代碼示例。
但是,ASP.NET AJAX經常被歸咎於效率低下 - 例如,它生成的JS往往會相當大。所以,如果你關心性能,你會想要徹底地測試它。
您也可以看看這個線程:.NET AJAX Calls to ASMX or ASPX or ASHX?
使用通用web處理程序。即ashx。這些速度甚至比操作的MVC更快。
如果你有.NET 3.5安裝在服務器上,你可以採取與框架附帶的JSON serialization tools的優勢。
Web API適用於Web窗體。 http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-aspnet-web-forms
理論上可以。但是,在實際使用中,您可能會遇到鎖定會話的問題:默認情況下,來自Web表單頁面的每個請求都與用戶會話相關聯,因此您只能逐個執行Ajax請求。它對您的項目可能並不重要 – 2016-05-13 05:44:45
您可以對大多數請求使用只讀會話,對於登錄/註銷可以使用讀寫。它可以防止鎖定問題。會話默認情況下未啓用Web API。我必須從Application_PostAuthorizeRequest中調用方法:HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.ReadOnly); – 2016-05-13 08:54:53
我很擔心,因爲我們試圖在傳統的ASP.NET Web表單中包含一個Web API模塊。確實,Web API默認沒有會話,但是當它與Web Form結合使用時,它確實沒有會話。我們甚至可以從API請求中讀取會話信息。通常情況下,這是不是一個問題,直到我們有一些沉重的API調用 – 2016-05-13 09:06:32
我在這種情況下首選的方法是使用一個通用的網絡處理器(ashx的)和JSON.net http://james.newtonking.com/json
很簡單,速度快,重量輕。
一個簡單的例子是:
public void ProcessRequest(HttpContext context)
{
string jsonOutput = string.Empty;
context.Response.ContentType = "application/json";
using (var db = new MyDBContext())
{
var dbResult = db.myobject.select();
jsonOutput = Newtonsoft.Json.JsonConvert.SerializeObject(dbResult);
}
context.Response.Write(jsonOutput);
}
- 1. 如何通過AJAX調用Web服務來返回Json數據?
- 2. 如何使用ajax調用在REST中調用@DELETE Web服務?
- 3. 來自.ajax,maxJsonLength的Web服務調用
- 4. 如何在sencha touch中使用json proxy調用web服務?
- 5. 在asp.net web窗體中的多線程web服務調用
- 6. 如何從ajax調用.NET Web服務?
- 7. 如何在角度js中使用web worker來調用服務?
- 8. 使用jquery調用SAP Web服務ajax
- 9. 使用jQuery調用Restful Web服務ajax
- 10. 使用ajax調用WCF Web服務
- 11. 使用Ajax調用web服務
- 12. 使用MVC的Ajax(調用Web服務)
- 13. 調用Web服務的.asmx使用AJAX
- 14. 如何調用JSON Web服務
- 15. Ajax調用Restful Web服務
- 16. AJAX調用Web服務
- 17. 使用JQuery調用JSON Web服務
- 18. 使用JSON從jQuery調用Web服務
- 19. 在liferay中調用json web服務
- 20. 如何使用Restlet來使用JSON Web服務?
- 21. 如何使用ajax調用在服務總線上發佈的Web服務?
- 22. 傳遞參數來調用Web服務使用AJAX
- 23. 調用使用JQuery Ajax調用休息Web服務,Web服務返回JSON字符串
- 24. 如何使用asp.net web服務調用oracle web服務
- 25. 如何使用ajax + jquery調用基於web服務的休息
- 26. 如何使用jQuery ajax調用RESTful php web服務?
- 27. 如何從跨域使用ajax調用asp.net web服務
- 28. 如何使用AJAX調用特定的Web服務方法?
- 29. 如何使用ajax調用post服務?
- 30. 在SSL Web服務器上調用JQuery AJAX Web服務
頁的方法是溶液。 – ProfK 2011-08-04 17:55:08