2010-12-20 32 views
0

我有一個asp頁面,它使用include來包含某些頁面,具體取決於查詢字符串。 我已經在asp.net中構建了此頁面的附加內容,並且希望將我的新頁面包含在asp頁面中,但是出現此錯誤。使用asp include include asp.net頁面

Active Server Pages error 'ASP 0140' 

    Page Command Out Of Order 

    /d//Default.aspx, line 1 

    The @ command must be the first command within the Active Server Page. 

回答

2

您不能在ASP.NET頁面中包含ASP.NET頁面。不過,你有兩個選擇。

最簡單的將是包括ASP.NET頁面作爲你的ASP頁面的iframe。您可以使用ASP動態設置服務器端IFrame的URL。

另一種選擇是寫一個包裝.NET的DLL,將通過一種方法使你的頁面。然後,您可以在COM +中註冊該DLL,以便它可以在ASP頁面中由VBScript調用。顯然這更復雜。

如果第一個選項有效,那麼就去做吧。否則,你可能不得不弄清楚如何實現第二個。

+1

我會去與iframe的想法 – MyHeadHurts 2010-12-20 17:47:03

+0

工作太棒了! – MyHeadHurts 2010-12-20 18:22:36

1

我很確定ASP中的包含功能是嚴格包含其他ASP文件,其中包含的代碼將被ASP引擎解析。它不知道如何處理ASP .NET代碼。

1

您不能在ASP.NET頁面中包含ASP.NET頁面。你不能將它們混合在同一個響應中。

使用Response.Redirect做出重定向到ASP.NET頁面來代替。

注意,你實際上是選擇哪一頁在你的ASP頁面,包括你總是包括網頁所有,因爲包括做任何ASP代碼開始之前,然後只在條件語句決定運行哪個頁面。

0

我同意賈斯汀Niessner的選擇,但也有另一種簡單的方法,包括ASP.net頁的內容到你的經典的ASP頁面,這可能會滿足您的需求。

如果要包括所導致的ASP.net頁面的HTML,可以採取以下方法:

Dim Url 
Url = "http://pathtoyourasp.net/script/somescript.aspx?param=value"  

' Create XML object, make server side request 
Dim objXML: set objXML = Server.CreateObject("Msxml2.ServerXMLHTTP") 
objXML.Open "GET", Url, True 
objXML.Send 

' Retry a few times just in case: it's classic ASP. 
Dim try_times: try_times = 0 
While objXML.ReadyState <> 4 and try_times < 5 
    objXML.waitForResponse 2 
    try_times = try_times + 1 
Wend 
If objXML.ReadyState = 4 then 
    ' Success, write the response 
    Response.Write objXML.ResponseText 
Else 
    ' Failed, show error 
    Response.Write "The page failed to load." 
End If 
Set objXML = Nothing 
+0

非常有趣的生病嘗試 – MyHeadHurts 2010-12-30 14:02:00