string u = "";
string Id = Requst["id"];
string Type = Request["type"]
if (Type == "1" || Id == "0")
{
  u="XX";
}
if (Type == "2" || Id == "0")
{
  u="XX";
}
if (Type == "3" || Id == "0")
{
  u="XX";
}
if (Type == "4" || Id == "0")
{
  u="XX";
}
if (Type == "5" || Id == "0")
{
  u="XX";
}
Response.Write(u);
以上语句,满足条件后(a.aspx?type=1&id=0)运行后只显示最后一个,其他的不显示,这是什么情况?

解决方案 »

  1.   

    你的五个if语句都执行了,因为id=0,而你在每个if里面都重新对u进行赋值,所以u的值是最后一次赋的值,即第五次赋的值。
      

  2.   

    因为|| Id == "0"可以这么写
    if(id=="0")
    {
      if (Type == "1") {   u="XX"; }
      if (Type == "2") {   u="XX"; } 
      if (Type == "3") {   u="XX"; } 
      if (Type == "4" ) {   u="XX"; } 
      if (Type == "5" ) {   u="XX"; } 
    }
      

  3.   

    id="0"这个条件可以提取出来,不然你得五个if会全部触发,所以只会输出最后一个执行后的值
      

  4.   

    或者你用
    if (Type == "1" && Id == "0") {   u="XX"; } 
    if (Type == "2" && Id == "0") {   u="XX"; } 
    if (Type == "3" && Id == "0") {   u="XX"; } 
    if (Type == "4" && Id == "0") {   u="XX"; } 
    if (Type == "5" && Id == "0") {   u="XX"; } Type == "1" && Id == "0"  意思为:type等于1,并且id等于0 两个条件都要满足Type == "1" || Id == "0"  意思为:type等于1,或者id等于0 两个条件只需要满足一个即可
      

  5.   

    同时多个IF判断的时候,你可以试下用foreach循环遍历出来啊
      

  6.   


    因为你用的||或者,所以前面执行的都被最后一次赋值覆盖了。
    用&&运算符就ok了。
      

  7.   

    如果要都显示,要累加了。if (Type == "1" || Id == "0")
    {
      u+="XX";
    }
    if (Type == "2" || Id == "0")
    {
      u+="XX";
    }
    ...............
      

  8.   

    Response.Write(u); 就一个,你就算你前面 每一个 if 都执行  但是变量U 每次也都被赋值 所以U 是最后一次if 语句赋值的内容 出来的也只有一个。最后你说能 打印几个呢??? 肯定也只有一个啊 。
      

  9.   

    问题已经解决,犯了个低级的错误: context.Request["type"]的时候最后发现不知怎么搞的手贱,type的后面多了一个. 成了context.Request["type."] 。正好是个烟民,这个.以为是烟灰一直没注意。