zoukankan      html  css  js  c++  java
  • 关于jQuery在asp.net中使用ajax的探讨

    与其说是探讨,不如说是提问。

    在asp.net开始时要用到ajax异步的效果,之前用[Microsoft ASP.NET 2.0 AJAX Extensions],觉得这东西快发快,但速度慢。

    所以之后用了jQuery来替换页面上的ajax效果,用着是挺好,界面上用$.post来提交请求数据,传入一个辨识码参数(如action=checkUserName),建一个Handler.ashx来接受前端的请求,然后调用后端的数据,返回给前端。

    一开始用着没问题,但慢慢的ajax效果越来越多,Handler.ashx也越来越大,越来越多的action判断,这样使得代码不方便管理。

    所以想寻求方案可以简化或分离了这块逻辑,请各位指点。

    谢谢。

    附上Handler.ashx代码:

      1 <%@ WebHandler Language="C#" Class="Handler" %>
    2
    3 using System;
    4 using System.Web;
    5
    6 public class Handler : IHttpHandler {
    7
    8 public void ProcessRequest (HttpContext context) {
    9 context.Response.ContentType = "text/plain";
    10 HttpRequest request = context.Request;
    11 HttpResponse response = context.Response;
    12 string action = request["action"];
    13 App app = new App();
    14 string output = "";
    15 if(action == null){
    16 response.Redirect("login.aspx");
    17 }
    18 switch(action){
    19 case "getProductByModel":
    20 output = JsonService.DtToSON(app.GetProductByModel(request["model"]));
    21 break;
    22 case "addSalesDetailTemp":
    23 SalesDetailTempModel m = new SalesDetailTempModel();
    24 m.SalesNo = request["salesNo"];
    25 m.ProductId = int.Parse(request["productId"]);
    26 m.Color = request["color"];
    27 m.Price = decimal.Parse(request["price"]);
    28 m.Discount = decimal.Parse(request["discount"]);
    29 m.Quantity = int.Parse(request["quantity"]);
    30 output = app.AddSalesDetailTemp(m);
    31 break;
    32 case "getSalesDetail":
    33 int salesId = int.Parse(request["salesId"]);
    34 string salesNo = request["salesNo"];
    35 output = JsonService.DtToSON(app.GetSalesDetail(salesId,salesNo));
    36 break;
    37 case "deleteSalesDetailTemp":
    38 salesNo = request["salesNo"];
    39 int productId = int.Parse(request["productId"]);
    40 string color = request["color"];
    41 app.DeleteSalesDetailTemp(salesNo, productId, color);
    42 break;
    43 case "searchSupplier":
    44 string key = request["key"];
    45 output = JsonService.DtToSON(app.SearchSupplier(key));
    46 break;
    47 case "getPurchaseDetail":
    48 int purchaseId = int.Parse(request["purchaseId"]);
    49 string purchaseNo = request["purchaseNo"];
    50 output = JsonService.DtToSON(app.GetPurchaseDetail(purchaseId, purchaseNo));
    51 break;
    52 case "deletePurchaseDetailTemp":
    53 purchaseNo = request["purchaseNo"];
    54 productId = int.Parse(request["productId"]);
    55 color = request["color"];
    56 app.DeletePurchaseDetailTemp(purchaseNo, productId, color);
    57 break;
    58 case "addPurchaseDetailTemp":
    59 PurchaseDetailTempModel p = new PurchaseDetailTempModel();
    60 p.PurchaseNo = request["purchaseNo"];
    61 p.ProductId = int.Parse(request["productId"]);
    62 p.Color = request["color"];
    63 p.Cost = decimal.Parse(request["cost"]);
    64 p.Quantity = int.Parse(request["quantity"]);
    65 output = app.AddPurchaseDetailTemp(p);
    66 break;
    67 case "getSalesNoByCustomer":
    68 output = JsonService.DtToSON(app.GetSalesNoByCustomer(int.Parse(request["customerId"])));
    69 break;
    70 case "addReturnGoodsDetailTemp":
    71 ReturnGoodsDetailTempModel r = new ReturnGoodsDetailTempModel();
    72 r.ReturnNo = request["returnNo"];
    73 r.ProductId = int.Parse(request["productId"]);
    74 r.Color = request["color"];
    75 r.Price = decimal.Parse(request["price"]);
    76 r.Quantity = int.Parse(request["quantity"]);
    77 output = app.AddReturnGoodsDetailTemp(r);
    78 break;
    79 case "getReturnGoodsDetail":
    80 output = JsonService.DtToSON(app.GetReturnGoodsDetail(int.Parse(request["returnId"]), request["returnNo"]));
    81 break;
    82 case "deleteReturnGoodsDetailTemp":
    83 string returnNo = request["returnNo"];
    84 productId = int.Parse(request["productId"]);
    85 color = request["color"];
    86 app.DeleteReturnGoodsDetailTemp(returnNo,productId,color);
    87 break;
    88 case "modifyPassword":
    89 int adminId = BasePage.AdminId;
    90 string oldPassword = request["oldPassword"];
    91 string newPassword = request["newPassword"];
    92 output = app.ModifyAdminPassword(adminId, oldPassword, newPassword).ToString();
    93 break;
    94 case "addInstallmentTemp":
    95 salesNo = request["salesNo"];
    96 adminId = BasePage.AdminId;
    97 DateTime payDate = DateTime.Parse(request["payDate"]);
    98 decimal payAmt = decimal.Parse(request["payAmt"]);
    99 bool received = bool.Parse(request["received"]);
    100 //收款人,如未收款则置空
    101 adminId = received ? adminId : 0;
    102 output = app.AddInstallmentTemp(adminId, salesNo, payDate, payAmt, received).ToString();
    103 break;
    104 case "getInstallmentBySales":
    105 salesId = int.Parse(request["salesId"]);
    106 salesNo = request["salesNo"];
    107 output = JsonService.DtToSON(app.GetInstallmentBySales(salesId,salesNo));
    108 break;
    109 case "deleteInstallmentTemp":
    110 salesNo = request["salesNo"];
    111 payDate = DateTime.Parse(request["date"]);
    112 output = app.DeleteInstallmentTemp(salesNo, payDate).ToString();
    113 break;
    114 case "confirmReceive":
    115 salesId = int.Parse(request["salesId"]);
    116 DateTime date = DateTime.Parse(request["date"]);
    117 adminId = BasePage.AdminId;
    118 app.ConfirmReceive(salesId, date, adminId);
    119 break;
    120 case "searchProduct":
    121 key = request["key"];
    122 output = JsonService.DtToSON(app.SearchProduct(key,1,true));
    123 break;
    124 case "searchCustomer":
    125 key = request["key"];
    126 output = JsonService.DtToSON(app.SearchCustomer(key));
    127 break;
    128 }
    129 response.Write(output);
    130 }
    131
    132 public bool IsReusable {
    133 get {
    134 return false;
    135 }
    136 }
    137 }
  • 相关阅读:
    python3+selenium框架设计04-封装测试基类
    python3+selenium框架设计02-自动化测试框架需要什么
    python3+selenium框架设计01-Page Object
    python3+selenium入门16-窗口截图
    python3+selenium入门15-执行JavaScript
    爬虫入门
    NLP整体流程的代码
    NLTK与NLP原理及基础
    NLTK词性标注解释
    [hdu4355]Party All the Time(三分)
  • 原文地址:https://www.cnblogs.com/caiwujia/p/jquery_ajax_in_aspnet.html
Copyright © 2011-2022 走看看