这个问题在这里已有答案:
我正在使用经典的asp。我有
<% If question = "where" Then %><!-- OTHER STINGING THINGS -->
<!-- #INCLUDE FILE="sting.asp" -->
<% End If %>
所以我可以使用www.mysite.com/?question=where
访问我的网站
我可以添加查询,例如
<% If question = "when" Then %><!-- OTHER STINGING THINGS -->
<!-- #INCLUDE FILE="sting.asp" -->
<% End If %>
但我似乎无法添加不同的查询,例如
<% If answer = "now" Then %><!-- OTHER STINGING THINGS -->
<!-- #INCLUDE FILE="sting.asp" -->
<% End If %>
去www.mysite.com/?answer=now
我错过了什么?
我不确定你是否要求获取传递的参数或conditonal包含文件。
如果是第一个,那么你需要先获取查询字符串,如下所示:
question = Request.QueryString("question")
answer = Request.QueryString("answer")
if question = "when" then
' do something
end if
if answer = "now" then
' do something else
end if
如果它是关于使用条件包括好,它们不能按预期工作,请参阅此页:http://www.4guysfromrolla.com/webtech/022504-1.shtml
该问题是由IIS Web服务器处理ASP页面请求的顺序引起的。在任何ASP代码能够运行之前包含该文件。这意味着像下面这样的代码不能像大多数人期望的那样工作。
<% If I_want_to_include_file_1 = True Then %>
<!--#include file="includefile1.asp"-->
<% Else %>
<!--#include file="includefile2.asp"-->
<% End If %>
代码将运行,但两个文件都将被包含在内。在If语句可以选择使用哪一个之前,两个文件中的代码都将替换为当前页面。当包含文件很大时,这会成为性能问题,并且当两个文件定义具有相同名称的函数或变量时也会导致问题。
他们继续提供条件包含的解决方案,但这不是直截了当的。我认为您可能更好地检查值并重定向到单独的页面?
If question = "when" Then
Response.Redirect "anotherpage.asp"
end if