在经典中将变量从内容页面传递到母版页 ASP
Pass Variable from Content page to Master Page in classic ASP
我是经典 ASP 的新手,我正在尝试创建一个带有可变占位符的母版页,并使用在内容页面上工作的变量填充该页面上的信息。
我的母版页如下所示:
<html>
<head>
<title>Template Loaded Properly</title>
</head>
<body>
<% call BodyContent %>
<span>Title: <% //place title here %></span>
<span>Content: <% //place content here %></span>
</body>
</html>
内容页是这样的:
<!--#include virtual="/templates/TEMPLATE.html" -->
<% sub BodyContent %>
var Title = "This is the title"
var Content = "Here goes some content"
<% end sub %>
任何帮助将不胜感激。
一旦包含变量的页面,您就可以将它们视为当场创建的(因为从某种意义上说,它们 是当场创建的 ,至少从服务器的角度来看)。您 do 需要使变量在范围 中成为全局变量[阅读:将它们调暗 outside the sub],除非你想在调用你的 BodyContent
sub 时列出所有这些。 (就我个人而言,我不明白这一点,但有些人对全局变量无缘无故地过敏。)
<%
dim Title, Content
sub BodyContent
Title = "This is the title"
Content = "Here goes some content"
end sub
%>
<body>
<% call BodyContent %>
<span>Title: <%=Title%></span>
<span>Content: <%=Content%></span>
</body>
但有一个警告:包含文件在代码处理之前很久就被处理了,因此您不能改变包含的文件。换句话说,不要这样做:
<%If x = a Then%>
<!-- #include virtual="/templateA.inc" -->
<%Else%>
<!-- #include virtual="/templateB.inc" -->
<%End If%>
尝试类似操作的结果是模板 A 和模板 B 都将包含在内。如果您需要条件包含,请考虑使用 FileSystemObject
来读取相应模板的内容,然后使用 Execute
来执行它。
我是经典 ASP 的新手,我正在尝试创建一个带有可变占位符的母版页,并使用在内容页面上工作的变量填充该页面上的信息。
我的母版页如下所示:
<html>
<head>
<title>Template Loaded Properly</title>
</head>
<body>
<% call BodyContent %>
<span>Title: <% //place title here %></span>
<span>Content: <% //place content here %></span>
</body>
</html>
内容页是这样的:
<!--#include virtual="/templates/TEMPLATE.html" -->
<% sub BodyContent %>
var Title = "This is the title"
var Content = "Here goes some content"
<% end sub %>
任何帮助将不胜感激。
一旦包含变量的页面,您就可以将它们视为当场创建的(因为从某种意义上说,它们 是当场创建的 ,至少从服务器的角度来看)。您 do 需要使变量在范围 中成为全局变量[阅读:将它们调暗 outside the sub],除非你想在调用你的 BodyContent
sub 时列出所有这些。 (就我个人而言,我不明白这一点,但有些人对全局变量无缘无故地过敏。)
<%
dim Title, Content
sub BodyContent
Title = "This is the title"
Content = "Here goes some content"
end sub
%>
<body>
<% call BodyContent %>
<span>Title: <%=Title%></span>
<span>Content: <%=Content%></span>
</body>
但有一个警告:包含文件在代码处理之前很久就被处理了,因此您不能改变包含的文件。换句话说,不要这样做:
<%If x = a Then%>
<!-- #include virtual="/templateA.inc" -->
<%Else%>
<!-- #include virtual="/templateB.inc" -->
<%End If%>
尝试类似操作的结果是模板 A 和模板 B 都将包含在内。如果您需要条件包含,请考虑使用 FileSystemObject
来读取相应模板的内容,然后使用 Execute
来执行它。