ASP.NET网站中获取当前虚拟目录的应用程序目录的方法
1.问题描述:
有时候,某个网页控件会被不一样目录下文件使用,此时若是该控件中有一个相对连接,那么该连接就会出现问题。
好比应用程序虚拟目录MyApp根目录有个Template.ascx用户控件文件,该文件有个链接到应用程序根目录的网页link.aspx。
若是Template.ascx中的连接直接写成href="link.aspx",那么在应用程序下级子目录中某个文件Test.aspx中包含Template.ascx控件,此时点击连接则会寻找该子目录下的link.aspx,这样显然是错误的。同理若是用"./"或"../"都是行不通的。
2.解决方案
为了解决这个方法能够直接用绝对目录href=“/MyApp/link.aspx"来代替,可是这个方法若是移植到其余不一样名的虚拟后就会失效了,所以须要一个更好的方法。
该方法就是用Request.ApplicationPath动态获取当前虚拟目录,方法以下
href="<%=Request.ApplicationPath%>/link.aspx"
这样,不管从何处访问都会返回当前虚拟目录下的link.aspx。html