2015-04-29 41 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