在ASP中使用include来包含文件,一般的有以下两种方式:

<!--#include file="相对路径"-->

<!--#include virtual="根目录下的绝对路径"-->

这两种包含文件的方式,其实都没有明确一点,那就是被包含的文件是否可以带参数。为什么要提到这个问题呢,我们来看一个需求。

一个网站,我们往往都包含一个统一的头部文件,假设是top.asp。但我们不同页面希望有一个不同的title,这是为了SEO着想。于是我们在top.asp里面做了如下判断:

<%

id=trim(Request.Querystring("id"))

select case id

 case 1

  title="title1"

 case 2

  title="title2"

 '....

end select

'.....

%>

所以,我们在包含top.asp的时候,我们想告诉当前是哪个页面,以便于实现不同页面有不同的title。

郁闷的是,<!--#include file="top.asp?id=1"-->,这个用法会报错,即ASP不允许包含文件时带参数。

那有没有什么办法来解决这个问题的,有的。把top.asp里面加一个函数框起来,即:

<%

sub top(id)

'下面这句就注释掉了

'id=trim(Request.Querystring("id"))

select case id

 case 1

  title="title1"

 case 2

  title="title2"

 '....

end select

'.....

end sub

%>

在包含top的时候,直接包含top.asp文件,即<!--#include file="top.asp"-->。但还没有完,我们得再调用一下top函数,即:

<!--#include file="top.asp"-->

<%

call top(1)

这样,就实现我们想要的效果了。

03-15 06:52