我是否必须一直指定System.Web.HttpContext.Current.Server?

时间:2013-03-06 22:52:11

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我使用的是Server.Mappath,需要指定“System.Web.HttpContext.Current.Server”。作为前缀。我不能将其作为包含而不是每次使用“服务器”。这是在一个类而不是控制器中使用因此需要。

控制器代码:

string strMapPath = Server.MapPath("~/XML/");

在课堂上时:

string strMapPath = System.Web.HttpContext.Current.Server.MapPath("~/XML/");

也适用于会话对象的使用:

System.Web.HttpContext.Current.Session["MasterDocument"] = myDoc;

如果我可以做类似的事情,那就太好了。

include System.Web.HttpContext.Current;

但不可能。

思想?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用使用别名指令;

using Server = System.Web.HttpContext.Current.Server;

这将允许您直接在控制器代码中使用它;

string strMapPath = Server.MapPath("~/XML/");

答案 1 :(得分:1)

这应该有效

public class YourClass
{
    public YourClass()
    {
        Server = System.Web.HttpContext.Current.Server;
    }

    protected HttpServerUtility Server
    {
        get; set;
    }

    public void SomeWork()
    {
        Server.MapPath("somepath");
    }
}