经典asp添加查询变量[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在使用经典的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

我错过了什么?

asp-classic
1个回答
1
投票

我不确定你是否要求获取传递的参数或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
© www.soinside.com 2019 - 2024. All rights reserved.