I have the following example page structure:
If I call Server.Execute(\"Script.aspx\")
from Webpa
In Script.aspx.cs, you can simply check the Request.Path in comparison to the current execution path.
if ( Request.CurrentExecutionFilePath == Request.Path )
{
//This has been called from a web browser
} else {
//This has been executed from the file Request.Path
}
Why?
Portions of the request are passed on untouched when you call the Server.Execute. Thus, if you were to look at the value of Request.Path from your Script.aspx.cs after using a Server.Execute in your Webpage.aspx.cs, you will see it has a value of "/Webpage.aspx".
However, if a web browser were to access Script.aspx directly, the value of Request.Path from Script.aspx.cs will result in "/Script.aspx". The currentExecutionPath will always yield the currently executed script, so comparing the two will give the desired result.
Hope this helps.