如何将#include .asp文件中的文本替换为另一个.asp文件

时间:2015-07-01 12:42:50

标签: asp-classic

使用非常简单的.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页面中。

2 个答案:

答案 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
%>