我有 asp.net 网站(使用网络表单)。我有一个名为的类FileHandler
,在该类中我想获取站点的根路径。
通常我Server.MapPath("~")
用来获取网页内的路径。
在这里我不能使用它,因为它不是页面。如何获取网站的路径?
编辑
更多关于FileHandler
类:
FileHandler
是一个静态类,我将把站点的根路径分配给一个 satic 变量。
这对我有用:
HttpContext.Current.Server.MapPath("YOUR PATH");
我在与我的一个页面分开的课程中使用了它。通常你不会从 HttpContext 调用它。
为什么不把它传给其他班级?
public class FileHandler {
public string SiteRoot { get; set; }
// or..
public FileHandler(string siteRoot) {
SiteRoot = siteRoot;
}
}
FileHandler fileHandler = new FileHandler() { SiteRoot = Server.MapPath("~") };
// or..
FileHandler fileHandler = new FileHandler(Server.MapPath("~"));
一种选择是,当您创建一个对象时,FileHandler
然后将路径作为构造函数参数传递。
public class FileHandler
{
public FileHandler(string rootPath)
{
// store root path as a property
}
}