`
javababy1
  • 浏览: 1166148 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[转载]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 获取路径的几种方式 asp.net 获取路径的几种方式 asp.net 获取路径的几种方式

    asp.net获取网站绝对路径示例

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

    asp.net知识库

    在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值...

    Asp.net把图片存入数据库和读取图片的方法

    网上关于ASP.NET上传图片到数据库的资料非常多,常用的如下:存储图片类型数据有以下几种方式:1.将图片转换为二进制数组(byte[]) 代码如下:byte[] fileData = this.FileUpload1.FileBytes; 2. 根据路径将文件转换...

    获取当前路径的几种方法

    ASP.net app_Code dll 类中获得当前路径的方法(非页面中) 在ASP.NET 页面中获得当前路径的方法很多,比如 MapPath 和 Request 对象。 但是在 app_Code 文件夹下的类文件. 想要获得当前的目录,会发现上面的 MapPath ...

    使用ASP.NET开发移动通讯的几种方法

    现在的消费者不仅仅要求通过个人电脑访问互联网上的资源...他们的第一个本能的反映是通过一个现有的Web网站来创建多个导航路径。很多Web开发者使用这种机制来解决不同版本的浏览器对HTML规范的支持程 度不一样的问题。

    FCKeditor 网页文本编辑器ASP.NET版

     3、加上几种我们常用的字体的方法,例如:  修改FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;  改为:FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    为了比较着几种重写方案,正则表达式基本上是和前面的IIRF定义中的规则类似的。 页面测试 定义完这些重写规则,我们就可以试着在页面中使用它们了。例如,如果我们写一个测试页面如下: Default.aspx ...

    asp.net面试题

    1.new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX(){} 第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。 2.如何把一个array复制到arrayList里 foreach( ...

    亮剑.NET深入体验与实战精要2

    5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 ...

    C#获取程序运行路径的几种方式

    C#获取程序运行时路径的几种方式,包含winForm和ASP.NET获取方式。

    亮剑.NET深入体验与实战精要3

    5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 ...

    无忧招聘系统 v2.0 招聘网站源码

    5:服务里要求启动asp.net状态服务,不然后台登录不了 6:后台路径http://localhost/admin/login.aspx(用户名及密码:admin admin) 如果在安装过程有不明白的请加无忧招聘系统技术支持 本系统只用于本地测试,只能用...

    Cambridge.Raven:Raven的ASP.NET MVC身份验证筛选器

    导入后,可以使用几种不同的方法来使用Raven身份验证。控制器如果控制器的所有动作都需要Raven身份验证,则最简单的方法是从RavenController类继承。 public class MyController : RavenContro

    Visual Studio.Net(VS) 源码管理器

    4、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"ASP.NET Web应用程序"。在"位置"栏中填写http://localhost/MyWebApp。并选择"添入解决方案"选项。确定。 这样就在...

    ASP.NET基于C#开发的2D游戏密室寻宝源码+exe可执行文件+项目使用说明(本科毕设).zip

    在使用笔者相同的实现方法(代码)时,有以下几个可以优化的方法。由于时间关系没有改动,需要或感兴趣的读者可自行实现。 1. 碰到陷阱人物退回上一步位置->提前判断下一步类型并决定是否移动 2. 使用稿子和炸药...

    C#网页跳转方法总结

    一、目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect(http://www.baidu.com,false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。 跳转向新的...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    先在这里修改目录及入口名称提交保存,然后到网站目录中把admin重命名,及admin_login.asp重命名,与刚刚设置名称要相同。其它项可以默认使用即可!  (4)用户选项设置: 、一天可以取几次密码即为用户密码...

    如何将图片转换成二进制存储

    图片的常见存储与读取凡是有以下几种: 存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[]. 1.参数是图片路径:返回Byte[]类型: public byte[] ...

Global site tag (gtag.js) - Google Analytics