我遇到了ElseIf
声明的问题,希望有人可以帮助我。 :)
这是我们目前的代码:
<%
Response.Buffer = True
If Request.QueryString("MapLocation") = "" Then
Response.Redirect "Page_Not_Found.html"
ElseIf Request.QueryString("StaffName") = "Shaun MaWhinney" Then
Response.Redirect "Leavers.html"
Else
strMapLocation = Request.QueryString("MapLocation")
strStaffName = Request.QueryString("StaffName")
End If
%>
我在ElseIf语句中添加了希望它可以工作,但不幸的是它完全跳过它并执行Else代码。 StaffName绝对等于“Shaun MaWhinney”,所以我迷失了为什么它没有打开leavers.html文件。有任何想法吗?感谢您阅读此邮件的时间。
答案 0 :(得分:0)
您可以使用这个简单的脚本
Option Explicit
Dim aCond : aCond = Array(False, True) ' <-- your experiments here
WScript.Echo Join(aCond)
If aCond(0) Then
WScript.Echo 1
ElseIf aCond(1) Then
WScript.Echo 2
Else
WScript.Echo 3
End If
输出:
cscript 21237966.vbs
False True
2
说服自己,ElseIf分支将在
时执行Request.QueryString("MapLocation") = ""
为假Request.QueryString("StaffName") = "Shaun MaWhinney"
为True 并且到达Else分支的唯一方法是从aCond = Array(False, False)
开始。因此,仔细检查Shaun的姓氏是否是“MaWhinney”(或“MacWhinney”或“McWhinney”)。
答案 1 :(得分:0)
您是否100%确定该名称的正确/大写与您测试的方式相同(即:&#34; Shaun Mawhinney&#34;将与#34; Shaun MaWhinney&#34;等等不同)。如果您不确定,可以转换并以小写/大写形式测试字符串。
如果您只是在Shaun MaWhinney的Leavers.html
为空时尝试重定向到MapLocation
,那么您可以这样做:
<%
Response.Buffer = True
If Request.QueryString("MapLocation") = "" Then
If lcase(Request.QueryString("StaffName")) = "shaun mawhinney" Then
Response.Redirect "Leavers.html"
else
Response.Redirect "Page_Not_Found.html"
End If
Else
strMapLocation = Request.QueryString("MapLocation")
strStaffName = Request.QueryString("StaffName")
End If
%>
答案 2 :(得分:0)
您可以尝试两件简单的事情 - 首先,将此作为您的其他if子句
ElseIf Server.Urlencode(Request.QueryString("StaffName")) = "Shaun+MaWhinney" Then
Response.Redirect "Leavers.html"
第二
删除您的ElseIf条款
结束后如果添加以下行
如果strStaffName =“Shaun MaWhinney”,那么Response.Redirect“Leavers.html”结束如果
显然,你也可以尝试使用方法2的Server.Urlencode