其实很多人在编写 ASP.NET 应用程序的时候,有时为了更好地进行控制静态文件的路径,如在模板页或者用户控件中设置js或者css文件的路径等,采用绝对路径是难免的。下面就是几种获取绝对路径的几种方法。
- VirtualPathUtility.ToAbsolute( " ~/ " )
- HttpRuntime.AppDomainAppVirtualPath
- Request.ApplicationPath
-
Page.ResolveUrl( " ~ " )
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种方法。例如
- 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();
- }
转自:http://www.ok22.org/art_detail.aspx?id=159
分享到:
相关推荐
在ASP.NET开发中,正确处理和获取路径是十分重要的,特别是在进行文件操作、资源加载以及URL重写等场景中。本文将详细介绍ASP.NET中获取路径的多种方式,并对每种方式的功能、应用场景以及注意事项进行深入解析。 #...
ASP.NET 是一种广泛使用的 Web 应用开发框架,它为开发者提供了强大的工具和 API 来构建动态网站。当需要从 HTML 内容中提取图片路径时,可以借助正则表达式来实现这一目标。 #### 正则表达式基础 正则表达式是一种...
在ASP.NET开发中,PDF查看控件是一种常用的组件,它允许用户在网页上直接预览、浏览PDF文档,而无需依赖Adobe Acrobat等第三方软件。本文将深入探讨ASP.NET PDF查看控件及其应用,以"PDFViewASP"为例,提供一个完整...
ASP.NET与KindEditor的整合是Web开发中常见的一种应用场景,主要目的是为了在网站上提供一个功能丰富的文本编辑器,使得用户可以方便地编辑和格式化文本内容。在本项目中,"asp.net+kindeditor"已经预先配置好,可以...
在ASP.NET电子商务网站的任务书中,可能会涵盖以下几个关键知识点: 1. **项目目标**:明确网站的目标,如提升用户体验、增加销售额、优化购物流程等。 2. **功能需求**:列出网站必须具备的功能,如商品展示、用户...
在ASP.NET中,有几个关键的对象用于处理Web应用程序中的不同任务。以下将详细介绍这些对象的功能和用法: 1. **SERVER对象**:这是ASP.NET提供的一种全局对象,用于访问与服务器相关的属性和方法。例如,`Server....
在这个"asp.net的几种传值方式练习"中,我们将探讨四种主要的数据传递方法:Session、Cookie、Application和Server.Transfer。 1. Session(会话): Session是ASP.NET中用于存储用户特定数据的重要机制。当用户...
本文结合自行开发的远程教育训练系统过程中出现的安全测试问题,探讨了在ASP.NET开发环境下常见的几种安全漏洞,包括SQL注入式攻击、查询字符串式数据传递、绕过登录直接进入页面、输入框中输入恶意代码以及数据库...
在ASP.NET中,一个项目通常包含以下几个部分: 1. **Web Forms**:这是ASP.NET的核心组件,用于创建交互式的HTML页面。每个.aspx文件代表一个Web表单,其中包含HTML、服务器控件和后台代码。 2. **CodeBehind**:...
在ASP.NET中实现网站访问统计,主要涉及以下几个关键技术点: 1. 数据库设计:描述中提到有数据库文件,这通常指的是存储网站访问数据的地方。数据库可能包含诸如访问次数、用户IP地址、访问时间、停留页面、浏览器...
在ASP.NET中处理文件下载是一项常见的任务,尤其是在提供资源下载的网站或者服务中。在这个"asp.net 文件下载demo"中,我们将会探讨如何在ASP.NET 3.5环境下实现安全的文件下载,同时通过文件路径的加密保护来增强...
在ASP.NET中,处理XML主要通过以下几种方式: 1. **System.Xml命名空间**: 这个命名空间包含了处理XML的基本类,如XmlDocument、XmlNode、XmlElement等。我们可以使用这些类来读取、创建、修改和解析XML文档。 2. ...
在Asp.net中处理Excel文件,通常有两种主要方法:使用 OleDB 或 ODBC 连接,以及使用第三方库如 NPOI 或 EPPlus。 1. **使用OleDb或ODBC连接** 这种方法依赖于Microsoft Jet Engine(对于Excel 97-2003)或ACE.OLE...
在 Asp.net 中使用 Frameset 需要注意以下几点: * Frameset 只能在 HTML 文件中使用,不能在 Asp.net 服务器端程序中使用。 * Frameset 需要在 HTML 文件的 `<HEAD>` 部分中定义。 * Frameset 中的 `<FRAME>` 标记...
在本项目中,"asp.net结合js从数据库获取图片的信息"表明我们关注的是如何通过这两种技术协同工作来展示从数据库中检索到的图片相关数据。 首先,`topdown.aspx`和`leftright.aspx`是ASP.NET的网页文件,它们通常...
【基于ASP.NET的在线教育网站开发】是一种利用微软的ASP.NET技术构建的互联网教育平台。ASP.NET是.NET框架的一部分,提供了丰富的工具和功能,用于快速、高效地开发Web应用程序。这个在线教育网站项目包含了完整的源...
在ASP.NET中,文件管理主要涉及到以下几个核心知识点: 1. **ASP.NET Web Forms和MVC**:ASP.NET提供了两种主要的开发模型,即Web Forms和MVC。Web Forms提供了一种事件驱动的编程模型,适合快速开发,而MVC模式则...
在ASP.NET中,上传文件至数据库是一个常见的需求,特别是在构建数据驱动的Web应用程序时。本文将详细介绍如何在ASP.NET环境中实现文件上传,并将其存储到不同的数据库类型,如Access和SQL Server。 首先,我们需要...
4. 配置WebSocket端点:在ASP.NET MVC的Global.asax.cs文件中,启动WebSocket服务,并设置监听的端口和路径。 5. 创建WebSocket客户端:在浏览器端,使用JavaScript的WebSocket API建立与服务端的连接,监听onopen、...