首先先谢谢大家,小弟刚开始学。遇到问题,不能解决,希望懂的人能帮忙解决。谢谢
<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后面就是没有输出!
<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后面就是没有输出!
Response.Write(category);
这样输出时没有问题的,不知道时哪里问题。
还是被盖掉了?在Response.Write后加个response.end看看
我加了这一句就可以了。是不是返回类型不是string。有没有可以直接转换的方法?
你应该在看看 var switch 这几个内容
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");
}
%>
var category=Request.QueryString("category"); 这里category 得到的是一个对象 而不是一个string的值 category == "index" 比较是会强制隐性 转换的 所以正常
但 switch中的参数 只比较结果 category 是object 与 "index" 这个字符串无法比较
最终执行的事default的模块category.item 才是真正的数据内容只需修改为
var category=Request.QueryString("category").item ;
即可了
这时的 category 就是一个字符串了
var category=Request.QueryString("category");
switch(category + '') ///这样强制转换也可以