`
charrysong
  • 浏览: 50427 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在ASP.NET 中获得网站绝对路径的几种方法

阅读更多

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

C#代码
  1. VirtualPathUtility.ToAbsolute( " ~/ " )   
  2. HttpRuntime.AppDomainAppVirtualPath   
  3. Request.ApplicationPath   
  4. 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种方法。例如

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

转自:http://www.ok22.org/art_detail.aspx?id=159

分享到:
评论

相关推荐

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

    在ASP.NET开发中,正确处理和获取路径是十分重要的,特别是在进行文件操作、资源加载以及URL重写等场景中。本文将详细介绍ASP.NET中获取路径的多种方式,并对每种方式的功能、应用场景以及注意事项进行深入解析。 #...

    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+kindeditor

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

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

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

    asp.net几个对象案例

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

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

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

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

    本文结合自行开发的远程教育训练系统过程中出现的安全测试问题,探讨了在ASP.NET开发环境下常见的几种安全漏洞,包括SQL注入式攻击、查询字符串式数据传递、绕过登录直接进入页面、输入框中输入恶意代码以及数据库...

    用ASP.NET制作的个人网站

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

    网站访问统计系统ASP.NET

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

    asp.net 文件下载demo

    在ASP.NET中处理文件下载是一项常见的任务,尤其是在提供资源下载的网站或者服务中。在这个"asp.net 文件下载demo"中,我们将会探讨如何在ASP.NET 3.5环境下实现安全的文件下载,同时通过文件路径的加密保护来增强...

    新概念ASP.NET教程

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

    Asp.net中Excel导入

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

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

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

    asp.net结合js

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

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

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

    asp.net文件管理

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

    如何在ASP.NET中上传文件到数据库

    在ASP.NET中,上传文件至数据库是一个常见的需求,特别是在构建数据驱动的Web应用程序时。本文将详细介绍如何在ASP.NET环境中实现文件上传,并将其存储到不同的数据库类型,如Access和SQL Server。 首先,我们需要...

    WebSocket C#/ASP.NET 示例

    4. 配置WebSocket端点:在ASP.NET MVC的Global.asax.cs文件中,启动WebSocket服务,并设置监听的端口和路径。 5. 创建WebSocket客户端:在浏览器端,使用JavaScript的WebSocket API建立与服务端的连接,监听onopen、...

Global site tag (gtag.js) - Google Analytics