`

[转载]ASP.NET 中得到网站绝对路径的几种方法

 
阅读更多

在编写 ASP.NET 应用程序的时候,有时为了更好地进行控制静态文件的路径,如在模板页或者用户控件中设置js或者css文件的路径等,采用绝对路径是难免的。下面就是几种获取绝对路径的几种方法。

C# 代码
VirtualPathUtility.ToAbsolute( " ~/ " )
HttpRuntime.AppDomainAppVirtualPath
Request.ApplicationPath
Page.ResolveUrl( " ~ " )
以上代码生成的结果如下:
当以网站的方式访问时,结果如下:

VirtualPathUtility.ToAbsolute("~/") = /
HttpRuntime.AppDomainAppVirtualPath = /
Request.ApplicationPath = /
Page.ResolveUrl("~") = /

当以虚拟目录(http://localhost:806/web2/url.aspx)访问时,结果如下:

VirtualPathUtility.ToAbsolute("~/") = /web2/
HttpRuntime.AppDomainAppVirtualPath = /web2
Request.ApplicationPath = /web2
Page.ResolveUrl("~") = /web2/

采用第二种和第三种方法,还需要做一下处理,因为网站访问时是以/结尾,而以虚拟目录访问时则是没有/的,进行还得进行一次判断,稍微麻烦一点。
但是,这些方法在页面中使用是没有任何问题的,但是如果在 Global 的 Application_Start 事件里需要得到网站的绝对路径,则需要使用前面2种方法,如果使用第三种方法,则会报告如下的错误:
Request is not available in this context
所以,只能采取头2种方法。例如

C# 代码
void Application_Start( object sender, EventArgs e)
{
System.IO.StreamWriter s = new System.IO.StreamWriter(HttpRuntime.AppDomainAppPath + " log.txt " );
s.WriteLine(VirtualPathUtility.ToAbsolute( " ~/ " ));
s.WriteLine(HttpRuntime.AppDomainAppVirtualPath);
s.Close();
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/net_lover/archive/2010/08/18/5821121.aspx

分享到:
评论

相关推荐

    asp.net 获取路径的几种方式

    本文将详细介绍ASP.NET中获取路径的多种方式,并对每种方式的功能、应用场景以及注意事项进行深入解析。 ### 1. `Request.RawUrl` `Request.RawUrl`返回的是客户端请求的原始URL字符串,它包含了查询字符串(如果...

    asp.net利用正则在HTML中提取图片路径(asp.net正则表达式过滤出HTML代码中图片路径).txt

    ASP.NET 是一种广泛使用的 Web 应用开发框架,它为开发者提供了强大的工具和 API 来构建动态网站。当需要从 HTML 内容中提取图片路径时,可以借助正则表达式来实现这一目标。 #### 正则表达式基础 正则表达式是一种...

    ASP.Net PDF 查看控件,完整asp.net例子

    在ASP.NET开发中,PDF查看控件是一种常用的组件,它允许用户在网页上直接预览、浏览PDF文档,而无需依赖Adobe Acrobat等第三方软件。本文将深入探讨ASP.NET PDF查看控件及其应用,以"PDFViewASP"为例,提供一个完整...

    ASP.NET电子商务网站(任务书,开题报告,需求分析).

    在ASP.NET电子商务网站的任务书中,可能会涵盖以下几个关键知识点: 1. **项目目标**:明确网站的目标,如提升用户体验、增加销售额、优化购物流程等。 2. **功能需求**:列出网站必须具备的功能,如商品展示、用户...

    asp.net+kindeditor

    ASP.NET与KindEditor的整合是Web开发中常见的一种应用场景,主要目的是为了在网站上提供一个功能丰富的文本编辑器,使得用户可以方便地编辑和格式化文本内容。在本项目中,"asp.net+kindeditor"已经预先配置好,可以...

    浅析基于asp.net的网站安全漏洞及防范

    本文通过对ASP.NET网站开发中常见的几种安全漏洞进行了详细的分析,并提出了相应的防范措施。为了提高网站的整体安全性,开发者和网站管理员需要不断学习新的安全技术和策略,同时也要定期对现有系统进行安全评估,...

    用ASP.NET制作的个人网站

    在ASP.NET中,一个项目通常包含以下几个部分: 1. **Web Forms**:这是ASP.NET的核心组件,用于创建交互式的HTML页面。每个.aspx文件代表一个Web表单,其中包含HTML、服务器控件和后台代码。 2. **CodeBehind**:...

    基于asp.net的在线教育网站开发

    【基于ASP.NET的在线教育网站开发】是一种利用微软的ASP.NET技术构建的互联网教育平台。ASP.NET是.NET框架的一部分,提供了丰富的工具和功能,用于快速、高效地开发Web应用程序。这个在线教育网站项目包含了完整的源...

    asp.net的几种传值方式练习

    在这个"asp.net的几种传值方式练习"中,我们将探讨四种主要的数据传递方法:Session、Cookie、Application和Server.Transfer。 1. Session(会话): Session是ASP.NET中用于存储用户特定数据的重要机制。当用户...

    Asp.net中Frameset的使用小结(1)

    在 Asp.net 中使用 Frameset 需要注意以下几点: * Frameset 只能在 HTML 文件中使用,不能在 Asp.net 服务器端程序中使用。 * Frameset 需要在 HTML 文件的 `<HEAD>` 部分中定义。 * Frameset 中的 `<FRAME>` 标记...

    asp.net几个对象案例

    在ASP.NET中,有几个关键的对象用于处理Web应用程序中的不同任务。以下将详细介绍这些对象的功能和用法: 1. **SERVER对象**:这是ASP.NET提供的一种全局对象,用于访问与服务器相关的属性和方法。例如,`Server....

    Asp.net中Excel导入

    在Asp.net中处理Excel文件,通常有两种主要方法:使用 OleDB 或 ODBC 连接,以及使用第三方库如 NPOI 或 EPPlus。 1. **使用OleDb或ODBC连接** 这种方法依赖于Microsoft Jet Engine(对于Excel 97-2003)或ACE.OLE...

    asp.net试题和答案

    对于初学者和有经验的开发者来说,通过练习相关的试题来加深对ASP.NET的理解和掌握,是一种非常有效的学习方法。下面,我们将从几个方面详细解析与ASP.NET相关的知识点,这些内容基于“asp.net试题和答案”这一主题...

    asp.net文件管理

    在ASP.NET中,文件管理主要涉及到以下几个核心知识点: 1. **ASP.NET Web Forms和MVC**:ASP.NET提供了两种主要的开发模型,即Web Forms和MVC。Web Forms提供了一种事件驱动的编程模型,适合快速开发,而MVC模式则...

    网站访问统计系统ASP.NET

    在ASP.NET中实现网站访问统计,主要涉及以下几个关键技术点: 1. 数据库设计:描述中提到有数据库文件,这通常指的是存储网站访问数据的地方。数据库可能包含诸如访问次数、用户IP地址、访问时间、停留页面、浏览器...

    新概念ASP.NET教程

    在ASP.NET中,处理XML主要通过以下几种方式: 1. **System.Xml命名空间**: 这个命名空间包含了处理XML的基本类,如XmlDocument、XmlNode、XmlElement等。我们可以使用这些类来读取、创建、修改和解析XML文档。 2. ...

    asp.net结合js

    在本项目中,"asp.net结合js从数据库获取图片的信息"表明我们关注的是如何通过这两种技术协同工作来展示从数据库中检索到的图片相关数据。 首先,`topdown.aspx`和`leftright.aspx`是ASP.NET的网页文件,它们通常...

    asp.net 文件下载demo

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地创建动态网站、Web服务以及Web应用程序。在ASP.NET中处理文件下载是一项常见的任务,尤其是在提供资源下载的...

    ASP.NET 导航控件

    在ASP.NET 2.0版本中,引入了一组强大的导航控件,极大地增强了用户界面的交互性和可用性。这些控件允许开发者轻松创建功能丰富的网站导航结构,使用户能够方便地浏览和定位网页内容。 导航控件包括以下几种: 1. ...

Global site tag (gtag.js) - Google Analytics