使用非常简单的.asp
( page1.asp )页面,如下所示(遗留代码):
<body>
<!--#include file="../com/body_begin.asp"-->
<%
Response.Write "<h3><b>Title / ABCD<b></h3></br>"
%>
<!--#include file="../com/body_end.asp"-->
</body>
问题: body_begin.asp 文件中有一些文本需要替换(位于Response.Write
内)。我无法在文件中更改它,因为它在其他.asp
页面中使用。
问题:如何将该文本更改/删除/替换为当前页面( page1.asp )?
代码: body_begin.asp
if (level="" or selection="") then
Response.Write "<h3><b>Please select a City from the menu<b></h3></br>"
else
if accessOK=false then
Response.Write "<h3>User <b>"&userName&"</b> do not have access to this page.</h3>"
end if
第一个end if
语句的if
通常位于每个.asp
页面中。
答案 0 :(得分:1)
当为多个页面使用公共包含文件时,重要的是保持包含尽可能通用的内容以适应所有使用它的位置。话虽这么说,你可以修改“../com/body_begin.asp”页面来查看ServerVariables ...这里有两个可能的例子:
<%
thisURL = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
thatURL = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("SCRIPT_NAME")
If thisURL Then
Response.Write "One Thing"
Else
Response.Write "Another Thing"
End
%>
请注意,这可能是一种创可贴,如果您有许多不同的变体,则不是最好的形式。您在通用标记中允许的例外越多,维护代码就越困难。
希望这有帮助。
答案 1 :(得分:0)
可能的方法:
1)而不是使用Response.Write使用函数作为字符串值
返回结果2)将body_begin.asp复制到body_begin2.asp并在文件body_begin2.asp中进行所需的更改
3)检查请求页面名称,参见下面的示例:
在文件 body_begin.asp 中进行以下更改,以检查所请求的页面。根据页面名称,您将输出一个或其他结果。我想文件“Page1.asp”位于网站根文件夹中。
<%
If LCase(Request.ServerVariables("PATH_INFO")) = "/page1.asp" Then
Response.Write "Ho ho!"
Else
Response.Write "Ha ha!"
End If
%>