123

我必须做什么才能Server.MapPath工作?
我有using System.Web;

还有什么?当我键入Server时,没有快速结果选项(智能感知)Server

有什么帮助吗?

4

9 回答 9

304

你可以尝试使用这个

    System.Web.HttpContext.Current.Server.MapPath(path);

或使用HostingEnvironment.MapPath

    System.Web.Hosting.HostingEnvironment.MapPath(path);
于 2012-06-19T17:10:25.997 回答
16

您的项目需要引用 assembly System.Web.dll。服务器是一个类型的对象HttpServerUtility。例子:

HttpContext.Current.Server.MapPath(path);
于 2012-06-19T17:06:37.080 回答
7

System.Web.HttpContext.Current.Server.MapPath("~/")如果我们从线程中调用它,则返回 null。

所以,尝试使用

System.Web.Hosting.HostingEnvironment.MapPath("~/")

于 2018-07-09T14:00:16.853 回答
2

System.web如果没有,请先添加对 的引用。在References文件夹中执行此操作。

然后你可以使用Hosting.HostingEnvironment.MapPath(path);

于 2016-02-02T03:44:20.033 回答
1
bool IsExist = System.IO.Directory.Exists(HttpContext.Current.Server.MapPath("/UploadedFiles/"));
if (!IsExist)
    System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/UploadedFiles/"));

StreamWriter textWriter = File.CreateText(Path.Combine(HttpContext.Current.Server.MapPath("/UploadedFiles/") + "FileName.csv"));
var csvWriter = new CsvWriter(textWriter, System.Globalization.CultureInfo.CurrentCulture);
csvWriter.WriteRecords(classVM);
于 2020-03-11T23:59:40.537 回答
1

我知道这篇文章已经有几年的历史了,但我所做的就是将此行添加到您班级的顶部,您仍然可以使用 Server.MapPath

Dim Server = HttpContext.Current.Server

或者你可以做一个功能

Public Function MapPath(sPath as String)
    return HttpContext.Current.Server.MapPath(sPath)
End Function

我致力于让事情变得更容易。我还将它添加到我的实用程序类中,以防我再次遇到这种情况。

于 2020-04-06T12:41:15.503 回答
0

尝试添加System.Web作为对您项目的引用。

于 2015-08-28T06:24:40.203 回答
0

您需要添加对 System.WebSystem.Web的引用 ( ) 引用

于 2015-10-07T09:52:10.903 回答
0

我遇到了同样的问题,我想这可能会对某人有所帮助。正如这个问题的原始海报所问

我必须做什么才能使 Server.MapPath 工作?
我有使用 System.Web;

我们编写的类应该实现System.Web.UI.Page

比如说,我们的类名是MyClass

public class MyClass: System.Web.UI.Page
{
// Code runs here 
}
于 2021-07-06T08:07:51.747 回答