2011-05-04 87 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

相關問題