转贴自:http://blog.163.com/cheng_hm2003/blog/static/1108056200763131557916/
服务器控件在引用资源的 ASP.NET 服务器控件中,可以使用绝对路径或相对路径,这一点与客户端元素一样。如果使用相对路径,则相对于页面、用户控件或包含该控件的主题的路径进行解析。例如,假设 Controls 文件夹中包含一个用户控件。该用户控件包含一个 Image Web 服务器控件,该服务器控件的 ImageUrl 属性设置为以下路径:
Images/SampleImage.jpg
该用户控件运行时,路径将解析为以下形式:
/Controls/Images/SampleImage.jpg
无论承载用户控件的页面位置如何,都是如此。
服务器控件中的绝对和相对路径引用具有以下缺点:
为克服这些缺点,ASP.NET 启用了 Web 应用程序根目录运算符 (~),在服务器控件中指定路径时,可以使用该运算符。ASP.NET 会将 ~ 运算符解析为当前应用程序的根目录。可以结合使用 ~ 运算符和文件夹来指定基于当前根目录的路径。下面的示例演示使用 Image 服务器控件时用于指定图像的根目录相对路径的 ~ 运算符:
<asp:image runat="server" id="Image1"ImageUrl="~/Images/SampleImage.jpg" />
在该示例中,图像文件将从 Web 应用程序根目录下的 Images 文件夹中直接读取,无论该页面位于网站的什么位置。
注意
~ 运算符只能为服务器控件识别,并且位于服务器代码中。不能将 ~ 运算符用于客户端元素。
|
可以在服务器控件中的任何与路径有关的属性中使用 ~ 运算符。
注意
在主控页中,资源的路径基于内容页的路径进行解析。有关更多信息,请参见 ASP.NET 母版页概述。
|
确定当前网站的物理文件路径
在应用程序中,您可能需要确定服务器上的文件或其他资源的路径。例如,如果应用程序以编程方式对文本文件进行读写操作,则必须为用于读取和写入的方法提供该文件的完整物理路径。
将物理文件路径(如 C:/Website/MyApplication)硬编码到应用程序中并不是很好的做法,因为如果移动或部署应用程序,则路径会发生更改。但是,ASP.NET 为您提供了以编程方式获取应用程序中的任何物理文件路径的方法。然后,您可以使用基文件路径创建所需资源的完整路径。用于确定文件路径的两种最常用的 ASP.NET 功能是返回路径信息的 HttpRequest 对象的属性,以及 MapPath 方法。
注意
不应将物理文件路径发送到客户端,因为它们可能会被恶意用户用来获取有关您的应用程序的信息。
|
根据请求属性确定路径
下表列出了 HttpRequest 对象的属性,这些属性帮助您确定应用程序中的资源的路径。
下面的示例假定使用以下 URL 来发出浏览器请求:
http://www.contoso.com/MyApplication/MyPages/Default.aspx
对于这些示例,术语“虚拟路径”是指跟在服务器标识符后面的请求 URL 的一部分,此时虚拟路径如下所示:
/MyApplication/MyPages/Default.aspx
此外,这些示例假定网站根目录的物理路径为以下形式:
C:/inetpub/wwwroot/MyApplication/
最后,这些示例假定物理路径包含一个名为 MyPages 的文件夹。
属性
说明
ApplicationPath
|
获取当前应用程序的根目录路径,无论在该应用程序中的什么位置请求该路径。对于此示例,该属性将返回以下内容:
/
|
CurrentExecutionFilePath
|
获取当前请求的虚拟路径。不同于 FilePath,差别在于如果请求已在服务器代码中被重定向,则 CurrentExecutionFilePath 就是正确的。对于此示例,该属性将返回以下内容:
/MyApplication/MyPages/Default.aspx
如果作为对 Transfer 或 Execute 进行调用的结果,您获取正在运行的代码中的属性,则路径将反映该代码的位置。
|
FilePath
|
获取当前请求的虚拟路径。对于此示例,该属性将返回以下内容:
/MyApplication/MyPages/Default.aspx
不同于 CurrentExecutionFilePath,FilePath 不反映服务器端转换。
|
Path
|
获取当前请求的虚拟路径。对于此示例,该属性将返回以下内容:
/MyApplication/MyPages/default.aspx
|
PhysicalApplicationPath
|
获取当前正在执行的应用程序的根目录的物理文件系统路径。对于此示例,该属性将返回以下内容:
C:/inetpub/wwwroot/
|
PhysicalPath
|
获取与请求的 URL 对应的物理文件系统路径。对于此示例,该属性将返回以下内容:
C:/inetpub/wwwroot/MyApplication/MyPages/default.aspx
|
使用 MapPath 方法
MapPath 方法返回传递给该方法的虚拟路径的完整物理路径。例如,以下代码返回网站根目录的文件路径:
Visual Basic
复制代码
Dim rootPath As String = Server.MapPath("~")
C#
复制代码
String rootPath = Server.MapPath("~");
注意
传递给 MapPath 方法的路径必须为应用程序相对路径,而不是绝对路径。
|
补充:一个小点"."表示当前目录,两个小点".."表示上级目录。
分享到:
相关推荐
网站中指定资源的路径的方法讨论 绝对路径和相对路径的对比 指定绝对路径和相对路径的方式 HttpContext对象使用
Asp.net相对路径与绝对路径
asp.net获取网站路径 绝对路径 相对路径
asp.net 获取路径的几种方式 asp.net 获取路径的几种方式 asp.net 获取路径的几种方式
asp.net获取路径的方法,在开发过程中,我们在实际操作中……
但是之后很多人Q我说他的项目始终有问题,我一看结果他用的是“asp.net网站项目”,网站项目和应用程序项目是不同的,虽然都可以,但是路径却有区别,所以在你上传和图片浏览时,都会出错! 为了解决这个问题,本人...
asp.net利用正则在HTML中提取图片路径(asp.net正则表达式过滤出HTML代码中图片路径).txtasp.net利用正则在HTML中提取图片路径(asp.net正则表达式过滤出HTML代码中图片路径).txt
asp.net 获得文件路径信息! 很值得下载看看!资源免费,大家分享!!
asp.net url ftp 使用url/ftp路径下载远程文档 ,使用webclient下载网络中的文档文件。
《Dreamweaver+ASP.NET动态网站设计与典型实例》配书光盘说明 配书光盘 版权所有,侵权必究 2007年10月 一、光盘内容: 1. Readme.txt 光盘说明文件,在使用前请先读光盘的Readme.txt文件。 2.目录内容: ...
asp.net实现访问网络路径 通过模拟用户登录来实现的
asp.net 通过模拟用户的方式实现访问网络路径。
给下面这个目录加上ASP.NET帐号的权限。C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files ASP.NET帐号的权限为: 读取和运行,列出文件夹目录,读取,写入。 前几天把自己写的东西移植到另一...
ASP.NET MVC 模版切换 自定义模板路径
本系统通过ASP.NET+HTML+CSS+DIV+SQL Server 2000实现,数据处理使用三层架构设计.给ASP.NET初学者提供了一个比较易懂的学习例子
ASP.NET c# 日期控件,很好用,测试通过 下载后解压放到站点文件夹下,引用时注意路径 前台: <title></title> <script language="javascript" type="text/javascript" src="../My97DatePicker/WdatePicker.js">...
第1章 S101 一个简单的ASP.NET Web API应用 第2章 S201 通过路由实现请求地址与.aspx页面的映射 S202 基本路由注册 S203 在路由注册中指定约束 S204 针对现有物理文件的路由(关闭) S205 针对现有物理文件的...
ASP.NET 递归下载treeview
森林Asp.Net留言板2005.11版 ********************************** 如果您是新用户,请直接将本程序的所有文件上传服务器,即可正常使用,然后根据您得实际 需求进行一下操作 默认主页:index.aspx 欢迎访问:...
Vs2010测试时可以正常访问网络文件夹,\\192....但配置到IIS上就无法访问了,原因是asp.net development server具有最高的权限,可以通过本机存储的unc用户名密码去进行身份验证。于是,解决这个问题就有突破口了……