这两天跟着辉哥做项目。

由于我那个项目几乎就是用各种重复的语句堆起来的,

维护起来非常麻烦,

所以我要用他的项目继续写下去。

接着碰到一个问题,就是我问辉哥,是不是一个*.ashx只可以处理一个事,

辉哥说不是的,你可以用ajax穿进去数据的时候在第一个键值那设置相同的键但是不同的值。

我当时想了很久也不明白,然后我到了第二天才想明白。

例如:

我Web页面这么写:

$("#button1").click(function(){$.ajax(           {               type: "POST",               url: "/ashx/a.ashx",               async: 'true',               data: "key1=" + "first" + "a=" + "1" + "b=" + "2",               success: function (msg) {                   if (msg == "a1")                   {                       alert("aaaaaaaaaaaaaaaaaa!");                   }                   else if (msg == "a2") {                       alert("bbbbbbbbbbbbbbbbbb!");                   }                   ......               },               complete: function (data) {               },               error: function (XMLHttpRequest, textStatus, thrownError) {                   //window.location.reload();                   alert(XMLHttpRequest.status);                   alert(XMLHttpRequest.readyState);                   alert(textStatus);                   alert(XMLHttpRequest.responseText);               }});然后我在a.ashx这么写:public void Proce***equest(HttpContext context)        {            if (context.Request["key1"] == "first")            {                                //代码块,各种处理语句                context.Response.Write("a1");            }            if (context.Request["key1"] == "second")            {                context.Response.Write("a2");            }            if (context.Request["key1"] == "third")            {                //代码块,各种处理语句                context.Response.Write("a3");            }            .......        }

我一直想不明白的是,要是每个ajax传的语句都有相同的键值,然后会不会乱了?

到最后我想明白了,是不会的。

因为只要我ajax传的第一个键值过去他只能进其中一个if里面执行,

其他的if他统统进不去,这样子就只可以执行其中符合他的代码块了,乱不起来!