2015-04-29 40 views
0

我已经知道Server.Execute(..)不接受查询字符串。 MSDN网站表示,前网站的所有变量都可用于执行页面。但它根本不适用于我。任何想法为什么?ASP Server.Execute - 执行页面不访问前/第一页的变量

简单的例子,应该工作,但它并不:

<% 
    Dim strVar 
    strVar = "This Text" 
    Server.Execute("page2.asp") 
%> 
Page2.asp 
<% 
    Response.Write(strVar) 
%> 

任何想法,为什么这不工作?

ps。我没有使用“<! - include .. - >”,因为我有条件输出。

+0

可能重复的[ASP 3.0 - 使用Server.Execute问题:从 “ASP丧失”(文本修订本)患](http://stackoverflow.com/questions/4997783/asp-3-0-server -execute-problems-suffering-from-asp-amnesia-text-revised) –

回答

1

当使用Server.Execute时,页面1中的变量在页面2上不可用,所以通过设计您的示例应该不起作用。

下面是来自MSDN page for Server.Execute一个片段,它解释了什么是可以从第1页页2.

下列集合和属性可向执行 ASP页:

  • Application变量即使它们在呼叫页面中设置。
  • 会话属性,即使它们在调用页面中设置。
  • 服务器变量和属性,即使它们在调用页面中设置。
  • 请求集合和属性,即使它们在调用页面中设置。这包括传递给调用页面的Form和QueryString数据。
  • 响应集合和属性。执行的.asp文件可能会修改HTTP标头。但是,与任何.asp文件一样,如果执行的.asp文件在向客户端发送响应后尝试修改HTTP标头,则会生成错误。
+0

“应用程序变量..”我认为这意味着在调用页面中声明的变量将可用于执行的ASP页面。 Isn't? – Art

+0

@Art应用程序变量与您在页面中声明的变量不同。应用程序变量就像所有页面可用的全局变量,并可通过应用程序对象(如Application(“myVar”))访问。有关更多信息,请参见[这里](http://www.w3schools.com/asp/asp_applications.asp)。 – Keith

+0

谢谢基思。我刚才看到它。现在我只有几个参数要发送,所以我最终使用了SESSION变量。我不知道在大查询字符串或参数的情况下可以做些什么。 – Art