C#中的ashx一般用于處理Web請求的后端邏輯,很多時候我們需要返回JSON格式的數(shù)據(jù)給前端,與前端進行數(shù)據(jù)交互。下面是一份簡單的示例。
public void ProcessRequest(HttpContext context) { string cmd = context.Request.QueryString["cmd"]; if (cmd == "getData") { DataTable dt = DBHelper.ExecuteDataTable("select * from UserInfo"); string jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(dt); context.Response.ContentType = "application/json"; context.Response.Write(jsonStr); } }
在上述代碼中,我們通過判斷查詢字符串中的cmd參數(shù),執(zhí)行相應的操作。如果cmd為getData,則查詢數(shù)據(jù)庫中的UserInfo表并生成JSON字符串返回給前端。
JSON字符串的生成是通過Newtonsoft.Json.JsonConvert.SerializeObject方法實現(xiàn)的,將DataTable對象序列化為JSON格式的字符串。
而在Response的ContentType中設置application/json,通知瀏覽器返回的是JSON格式的數(shù)據(jù)。
接下來是前端代碼的調用:
$.get("DataHandler.ashx?cmd=getData", function (data) { // 數(shù)據(jù)返回成功 var jsonData = JSON.parse(data); // 對jsonData進行操作 });
在前端中,我們使用jQuery的$.get方法發(fā)送一個請求到DataHandler.ashx,并傳入cmd參數(shù)為getData。在成功返回數(shù)據(jù)后,我們將data字符串轉為JSON對象,方便我們進行相關操作。
以上便是ashx返回JSON數(shù)據(jù)的基本操作,簡單易用。希望本文對各位朋友有所幫助。