在Web開發(fā)中,我們常常需要通過AJAX獲取JSON數(shù)據(jù)以實現(xiàn)更為靈活的交互效果。而C#的ASHX處理程序就可以提供這樣的功能。下面我們將演示如何使用C#的ASHX將JSON數(shù)據(jù)發(fā)送到前端。
首先,我們需要在C#的ASHX文件中編寫代碼以處理請求。假設(shè)我們需要從一個數(shù)據(jù)庫中獲取商品列表,可以按照以下步驟實現(xiàn):
using System.Web;
using System.Web.Script.Serialization;
using System.Data.SqlClient;
public class ProductHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string connectionString = "Data Source=(local);Initial Catalog=DbName;Integrated Security=True";
List<Product> productList = new List<Product>();
using (SqlConnection connection = new SqlConnection(connectionString))
{
string query = "SELECT * FROM Product";
using (SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Product product = new Product();
product.ID = (int)reader["ID"];
product.Name = reader["Name"].ToString();
product.Price = (decimal)reader["Price"];
productList.Add(product);
}
}
}
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(productList);
context.Response.Write(json);
}
public bool IsReusable
{
get
{
return false;
}
}
}
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
在ASHX中,我們首先設(shè)置了輸出類型為JSON,然后通過訪問數(shù)據(jù)庫獲取了商品信息,并將其序列化成JSON字符串后返回給前端。
然后,在前端,我們可以通過jQuery的AJAX方法來獲取這些數(shù)據(jù):
$.ajax({
url: '/ProductHandler.ashx',
dataType: 'json',
success: function (data) {
console.log(data);
}
});
這樣,我們就成功地從服務(wù)器端獲取了JSON數(shù)據(jù),并在前端進行了處理。以上便是如何使用C#的ASHX獲取JSON數(shù)據(jù)的全部流程。通過這種方式,我們可以輕松地實現(xiàn)各種需求的數(shù)據(jù)交互。