在类中如何使用 Server.MapPath、Request、Response

作者:vkvi 来源:ITPOW(原创) 日期:2007-6-13

直接在类中使用 Server.MapPath 会出现错误,这是由于类中不能直接使用 System.Web.UI.Page 的非静态函数造成的。解决方法有两种:

方法一、为类增加继承

class CFoo : System.Web.UI.Page

方法二、利用上下文直接使用

System.Web.HttpContext.Current.Server.MapPath

在使用方法一时请注意:C#中,派生类只能从一个类中继承

方法二中,System.Web.HttpContext.Current 中 System.Web 是名称空间,HttpContext.Current 是类,HttpContext 封装有关个别 HTTP 请求的所有 HTTP 特定的信息,Current 表示当前 HTTP 请求。

如果我们引入名称空间 System.Web 了,则可以省略为 HttpContext.Current.Server.MapPath。

其实这里并不是只限于 Server.MapPath,还可以这样使用 Server 类的其它属性与方法,比如:Server.HtmlEncode(注意大小写)。

Request、Response 类似。

相关文章