2011-05-04 84 views
1

我一直在使用相同的方法,称为CheckIfImageExiste(string virtualPath,string finename)现在3页,因为该方法包含方法Server.MapPath是否有可能Server.MapPath页面类中的任何其他bau?

该方法应该接收虚拟路径和图像文件的名称,并检查图像是否在正确的文件夹中。所以当方法接收参数时,需要将其转换为物理路径。

在后面的代码

,我可以这样做:

string physicalPath = Server.MapPath(virtualPath);

但是,如果我决定移动CheckIfImageExiste()到另一个类,以便它可以被所有3类共享,如何在新类中定义Server.MapPath(virtualPath)?我的意思是,什么是参考?

感谢您的帮助

回答

1

HttpServerUtility应提供:

http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.aspx

...或者你可以通过你的新功能,网页本身的参考。

+0

我传递了页面对该方法的引用,它完美地工作。但我仍然需要知道如何使用HttpServerUtility。 (看我写给BJ Sadie) – Richard77 2011-05-04 02:43:23

+1

我对它没有构造函数的错误感到困惑,但我可以理解为什么它会抱怨 - 没有HttpContext,服务器实用程序没有多大用处。如果你不想访问HttpContext,那么我不知道如何避免传入页面或服务器本身的引用。我已经初始化如下没有问题:HttpServerUtility oSrvr = HttpContext.Current.Server; ...只要你保证从网站执行此操作,我认为你会没事的。 – fordareh 2011-05-04 13:48:58

+0

现在,我能够从我的新班级执行相同的方法。字符串physicalPath = HttpContext.Current.Server.MapPath(virtualPath)。谢谢 – Richard77 2011-05-04 22:17:26

2

HttpContext.Current.Server.MapPath

+0

当我HttpContext.Current.Server.MapPath,只有4种方法显示:Equals,ReferenceEquals,UrlTokenEncode和UrlTokenDecode。当我这样做:HttpServerUtility server = new HttpServerUtility()时,智能感知使用我的MapPath()方法。然后它抱怨HttpServerUtility没有构造函数。我只是不明白。 – Richard77 2011-05-04 02:35:01

相关问题