首先先谢谢大家,小弟刚开始学。遇到问题,不能解决,希望懂的人能帮忙解决。谢谢
<ul>
<li><a href="t.asp?category=index">test1</a></li>
<li><a href="t.asp?category=contactUs">test2</a></li>
</ul>
<% 
var category=Request.QueryString("category");   
switch(category){
        case "index":Response.Write("test1"); break; 
case "contactUs":Response.Write("test2");  break;
}
 
%>
上面是主要的代码,我用response.write在前后都测试过,为什么case后面就是没有输出!

解决方案 »

  1.   

    var category=Request.QueryString("category"); 
          Response.Write(category);  
    这样输出时没有问题的,不知道时哪里问题。
      

  2.   

    还是不行,是不是category返回类型不是string啊!
      

  3.   

    你确定没有输出?
    还是被盖掉了?在Response.Write后加个response.end看看
      

  4.   

    category += "";
    我加了这一句就可以了。是不是返回类型不是string。有没有可以直接转换的方法?
      

  5.   

    按说语法是没有错误,只能是你的函数应用错误了,可能是不write 你试试别的函数可以吗?
      

  6.   

    用write是可以写的,你看我7楼的回复先。我感觉是类型出现问题,vbscript语法不习惯啊!想用Jscript,但是碰到的问题更多。把这个问题解决了,就用VBscript吧,网上资料也多一些。痛苦中。
      

  7.   

    你这个是你用的语言的基本概念问题吧
    你应该在看看 var  switch 这几个内容
      

  8.   

    <% 
    var category=Request.QueryString("category"); 
             if(category == "index"){
    Response.Write("Test !");//这里能输出显示的,到底是哪里问题啊?
    }
    //category += ""; //可以解决问题,但是为什么会出现这个问题?
    switch(category){
            case "index":Response.Write("index");  break;
    case "contactus":Response.Write("contactus");  break;
    default:Response.Write("ffaa"); 
    }
    %>
      

  9.   

    case的语法和vbscript的不同吧。
      

  10.   

    问题出在
    var category=Request.QueryString("category"); 这里category 得到的是一个对象 而不是一个string的值 category == "index" 比较是会强制隐性 转换的 所以正常
    但 switch中的参数 只比较结果 category 是object 与 "index" 这个字符串无法比较 
    最终执行的事default的模块category.item 才是真正的数据内容只需修改为
    var category=Request.QueryString("category").item ; 
    即可了
    这时的 category 就是一个字符串了
      

  11.   

    另一种解决方式
    var category=Request.QueryString("category");  
    switch(category + '')   ///这样强制转换也可以