经常在后台用一般处理程序(.ashx)来处理前台的ajax请求
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Script.Serialization; using NewProductImport.Utility; using NewProductImport.NewProductImportService; using NewProductImport.Common.Models; namespace MvcApplication4.ajax { /// <summary> /// dele 的摘要说明 /// </summary> public class dele : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //context.Response.Write("Hello World"); try { /** * 1、如何接受从前台ajax传来的数据 * 1.1 context.Request.Form[]得到的数据是字符串,需要用Convert转一下 * 1.2 context.Request.Params.Get("dataJsonAdd") * 区别,暂时不知 * */ int id = Convert.ToInt32(context.Request.Form["id"]); string dataJsonAdd = context.Request.Params.Get("dataJsonAdd"); /** * 2、如果接受的数据有json传,需要进行反序列化 * 2.1 Newtonsoft.Json.JsonConvert.DeserializeObject<List<ServiceSystemProcess>>(dataJsonAdd); * 2.2 写好泛型,可以直接反序列化成我们需要的类列表 * */ List<ServiceSystemProcess> = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ServiceSystemProcess>>(dataJsonAdd); /** * 3、调用webservice中的接口,得到返回值 * 3.1 DeleteServiceSystemProcess 是Webservice中接口的名字 * 3.2 NewProductWS 是在Utility文件夹中的一个webservice类 * 3.3 Webservice中的内容这里不细讲 * */ bool result = NewProductWS.GetInstance().Client.DeleteServiceSystemProcess(header, id); //如果将得到的数据传回到前台ajax,可以对数据进行序列化成json串后再回传。 /** * 4、处理完数据,将结果返回给ajax * 4.1 context.Response.Write(); * 4.2 如果我们返回的结果不是一个简单的布尔值,而是一个对象,可以先序列化成json传,再返回 * string jsonReturn = Newtonsoft.Json.JsonConvert.serializeObject(回传对象); * context.Response.Write(jsonReturn); * */ context.Response.Write(result); } catch(Exception ex) { //throw ex; } } public bool IsReusable { get { return false; } } } }