使用Jquery发送请求,服务端用ashx文件来处理客户端的请求, 最开始的时候像下面的情形:
1、$.get("getName.ashx",{id:12345},function(data){响应不同的Ajax请求,您是怎么做的?});

2、$.post("setName.ashx",{name:"Zaibiechu"},function(data){响应不同的Ajax请求,您是怎么做的?});

响应不同的Ajax请求,您是怎么做的?

一个请求对应一个ashx文件,项目做久了,于是产生了一堆的ashx文件,自然觉得不是一个好办法。再接下来就把一些相关的请求放到同一个文件中来,而客户端通过发送一个“cmd”参数,来请求相应的方法,如下: 

1、$.get("nameMethod.ashx",{cmd:"getName",id:12345},function(data){响应不同的Ajax请求,您是怎么做的?});

2、$.post("nameMethod.ashx",{cmd:"setName",name:"Zaibiechu"},function(data){响应不同的Ajax请求,您是怎么做的?});

响应不同的Ajax请求,您是怎么做的?

服务器端处理: 

public class nameMethod : IHttpHandler {
   
public void ProcessRequest (HttpContext context) {
        context.Response.ContentType 
= "text/plain";
        
if (context.Request["cmd"!= null)
        {
            
string cmd = context.Request["cmd"];
            
switch (cmd)
            {
                
case "getName": GetName(context); break;
                
case "setName": SetName(context); break;
                    响应不同的Ajax请求,您是怎么做的?响应不同的Ajax请求,您是怎么做的?.                    
            }
        }
    }


    
public void GetName(HttpContext context)
    {
        响应不同的Ajax请求,您是怎么做的?响应不同的Ajax请求,您是怎么做的?
    }

   
public void SetName(HttpContext context)
    {
        响应不同的Ajax请求,您是怎么做的?响应不同的Ajax请求,您是怎么做的?
    }

响应不同的Ajax请求,您是怎么做的?响应不同的Ajax请求,您是怎么做的?.      

}

这样文件是省了不少,但是一堆case,看上去还是别扭,怎么才可以看上去更好点呢。琢磨了一阵,想到了反射,遂将后台方法修改如下:

public class nameMethod : IHttpHandler {
    
    
public void ProcessRequest (HttpContext context) {
        context.Response.ContentType 
= "text/plain";
        
if (context.Request["cmd"!= null)
        {
            
string cmd = context.Request["cmd"];
            var method 
= this.GetType().GetMethod(cmd);
            
if (method != null)
            {
                method.Invoke(
thisnew object[]{ context});
            }
        }
    }


    
public void GetName(HttpContext context)
    {
         响应不同的Ajax请求,您是怎么做的?响应不同的Ajax请求,您是怎么做的?

    }

   
public void SetName(HttpContext context)
    {
         响应不同的Ajax请求,您是怎么做的?响应不同的Ajax请求,您是怎么做的?
    }  

}

  

看上去似乎“优雅”多了,我能想到的处理方法就是这样,但总觉得这土生土长的方法,是不是一个好的解决方案呢,想听听大家的意见,你们在处理这个问题上是怎么做的呢,请不吝赐教。 

 

相关文章:

  • 2022-01-30
  • 2021-12-19
  • 2022-12-23
  • 2021-04-15
  • 2021-09-08
  • 2021-06-07
  • 2022-12-23
  • 2022-01-16
猜你喜欢
  • 2022-12-23
  • 2022-01-16
  • 2022-02-11
  • 2021-11-23
  • 2022-01-13
  • 2021-07-22
  • 2022-12-23
相关资源
相似解决方案