Click to See Complete Forum and Search --> : variable undeclared in included file.


keeps21
01-20-2009, 10:02 AM
I have two files. (This is a simplified example)

The first file declared variables - the second outputs the variables.

The problem is that myArray is 'undeclared' when file2.aspx tries to use it. However varName is working fine.

If I declare and populate myArray in the same way in file2.aspx it also works fine.

Can anyone shed any light on the problem?

file1.aspx

<%
'declare variable
varName = "hello"

'declare array
Dim myArray(2) As String
myArray(0) = "0"
myArray(1) = "1"
myArray(2) = "2"
%>
<!--#include file="file2.aspx"-->


file2.aspx

<div>
<%
'output name variable
Response.Write(varName)

'Loop through array and output results.
For i = 0 To 2
Response.Write(myArray(i))
Next
%>
</div>


Thanks for your help.

BOUND4DOOM
01-20-2009, 02:04 PM
Well, first (bangs his head on the desk) Why on earth in .net are you using include files. Classic asp ok. .net, no way

Second (bangs his head on the desk) why are using using in line code in .net Classic asp ok. .net, no way

Sorry if this answer sound snippy, but .net even asp.net is an object oriented language, when you are using inline code then you are not defining your classes and so on so what asp.net does is create those classes for you and compiles your pages for you however it compiles them in temp class names that you do not know what they are going to be. So anyway it looks like you are trying very hard not to give up classic asp, which really doesn't work anymore.

So each and every page is compiled separately into its own class, this includes your include files. So one include can not reference another include or anything in it.

Instead what you would need to do is use code behind, name your classes and where you want shared code create actual class files.

chazzy
01-20-2009, 07:18 PM
<!--#include style is for server side includes, .net doesn't parse them as part of the same request, they're parsed as separate requests.