C# / .NET 在类中使用Server.MapPath
直接在类中使用 Server.MapPath 会出现错误,这是由于类中不能直接使用 System.Web.UI.Page 的非静态函数造成的。解决方法有两种:
方法一、使类继承System.Web.UI.Page类
方法二、利用上下文直接使用
方法二中,System.Web.HttpContext.Current 中 System.Web 是名称空间,HttpContext.Current 是类,
HttpContext 封装有关个别 HTTP 请求的所有 HTTP 特定的信息,Current 表示当前 HTTP 请求。
如果我们引入名称空间 System.Web 了,则可以省略为 HttpContext.Current.Server.MapPath。
其实这里并不是只限于 Server.MapPath,还可以这样使用 Server 类的其它属性与方法,比如:Server.HtmlEncode(注意大小写)。
也可以这样使用:
string abso_path = HttpContext.Current.Server.MapPath(commonPath); //带有服务器信息的path
然后再其他地方直接调用变量 abso_path 即可,尤其是在类中多处都要用到该地址时。
还可以在辅助器类中定义如下字段:
private string _path = HttpContext.Current.Server.MapPath("/"); //返回应用程序根目录所在的物理文件路径
扩展:
经实践发现,有的时候即使引用了命名空间,也无法正常使用 “HttpContext.Current”,也即无法使用 “HttpContext.Current.Server.MapPath”,
于是,我又找到了另一种方法:
首先,引用命名空间 “using System.IO”,
然后,使用 Path.Combine(HttpRuntime.AppDomainAppPath, "index.html") 的形式即可得到同样的效果(而且这种方式更安全)。
(扩展参考于:https://www.cnblogs.com/fish-li/archive/2013/04/06/3002940.html )
C# / .NET 在类中使用Server.MapPath的更多相关文章
- ASP.NET - 在类中如何使用 Server.MapPath
直接在类中使用 Server.MapPath 会出现错误,这是由于类中不能直接使用 System.Web.UI.Page 的非静态函数造成的.解决方法有两种: 方法一.为类增加继承 class CFo ...
- asp.net中Server.MapPath的使用
http://www.studyofnet.com/news/184.html 本文导读:Server.MapPath()的全名是System.Web.HttpContext.Current.Se ...
- Server.MapPath()的用法
http://blog.csdn.net/qiuhaifeng_csu/article/details/19416407 Server.MapPath(string path)作用是返回与Web服务器 ...
- Asp.Net Server.MapPath()用法
做了一个上传文件的功能 本地测试没问题 部署到服务器之后 一直报错 由于 某些历史原因 看不到错误信息 最后发现是路径的问题 其实这么简单的问题 最早该想到的 ...... Server.MapPat ...
- Server.MapPath()
./当前目录/网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot 应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\co ...
- C# Server.MapPath()
./当前目录 /网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot 应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\ ...
- Server.MapPath() 用法
Server.MapPath() ./当前目录/网站主目录../上层目录~/网站虚拟目录 如果当前的网站目录为E:\wwwroot 应用程序虚拟目录为E:\wwwroot\company 浏览的页 ...
- 【转】类中如何引用server.MapPath()
转至:http://blog.csdn.net/tangjianft/article/details/5357151 今天在写一个上传图片方法时遇到了两个问题:1.public string getI ...
- ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、Server.MapPath(转载)
1.Request.ApplicationPath->当前应用的目录 Jsp中, ApplicationPath指的是当前的application(应用程序)的目录,ASP.NET中也是这个 ...
随机推荐
- 09: xmltodict 模块将xml格式转成json格式
1.1 : xmltodict 模块将xml格式转成json格式 <?xml version="1.0"?> <!--#版本号--> <data> ...
- 20145220韩旭飞《网络对抗》Exp6 信息搜集与漏洞扫描
20145220韩旭飞<网络对抗>Exp6 信息搜集与漏洞扫描 信息搜集 whois查询 以百度的网址为例,使用whois查询域名注册信息: 从上图中可以得到3R注册信息,包括注册人的名字 ...
- NRF24L01通信频率
RF-CH 共包括六位,这六位决定了不同的工作方式频率,nRF24L01无线通信模块中工作通道频率由RF-CH寄存器的内容确定, 可由以下公式计算得出:Fo=(2400+RF-CH)MHz. 扩展:射 ...
- 安装PyInstaller打包python
安装PyInstaller 对于那些网络比较稳定,能够流畅使用pip源地址的用户,直接下面的命令就可以搞定: pip install pyinstaller 通常我们会下载源码包,然后进入包目录,执行 ...
- Windows下卸载软件时提示 等待先前的卸载完成? 终止 dllhost.exe 进程
只要结束进程中的 "dllhost" 进程就好了. 估计原因是, 当卸载某些 "所谓的"较大型的软件的时候, 要去更新, 更改系统对dll链接库的注册, 更新. ...
- RHEL7使用NAT方式上网
1.首先,Windows7无法设置网络共享VMNet8的问题,是因为禁用了Firewall服务,设置为自动,启用即可:且需要启动VMWare的DHCP和NAT两个服务,这两个服务在我的机器上是关闭的, ...
- 【Maven】2.使用Nexus3搭建Maven私服+上传第三方jar包到本地maven仓库
参考文章: http://www.cnblogs.com/luotaoyeah/p/3791966.html --------------------------------------------- ...
- Atcoder Educational DP Contest
前面简单一点的题直接过吧. A 暴力DP B 怎么还是暴力DP C 还是暴力DP D 直接背包 E 这个背包不太一样了,这里有一个技巧,就是因为价值很小,所以直接对价值背包,求出来达到某一个权值最小的 ...
- ng-model 数据不更新 及 ng-repeat【ngRepeat:dupes】错误
一.ng-include 引入的文件中 ,ng-model 数据不更新 例如, $scope.username = “Jones” .此时,在 ng-include 引入的文件中,直接使用 ng-m ...
- vue-cli 组件运用
// components ----- helloworld.vue <script> export default { name: 'Hellowworld', props: { //接 ...